私はクラスAとクラスBを持っています
クラス A には次のものがあります。
public int ID
{
get;
set;
}
プログラムを実行すると、ID ex:123 に値が割り当てられ、フォームが閉じられてデフォルト値が設定されると破棄されます = 0
質問: 破棄される前にクラス B の値を保存するにはどうすればよいですか? そのため、クラス B の値にアクセスして検証を実行できます。
Class A
とがwin -form で、からClass B
開いているとします。次のようなメソッドをフォームに記述します。A
B
A
public int GetInput(){
Show();
return ID;
}
A
のコンストラクターでも、次の行を記述します
public A()
{
Visible=false;
}
フォームB
に次のように記述して、フォームを開きますA
。
public void OpenA()
{
var a=new A();
var i=a.GetInput();
}
i
の値が含まれるようになりましID
た。
OnClosedイベントに登録できます。
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.onclosed.aspx
基本的に、クラスBは次のようなことを行うことができます。
form.OnClosed += (sender, e) => {
var id = form.ID;
//Do something with the ID
}
それが役に立てば幸い。
私は Observable パターンがあなたを助けると信じています。次のチェーンを使用します: メイン スレッド (winforms の場合はフォーム) は、閉じる前に A にイベントを送信し、A は破棄する前に B にイベントを送信します。