2

私はクラスAとクラスBを持っています

クラス A には次のものがあります。

public int ID
{
    get;    
    set;
}

プログラムを実行すると、ID ex:123 に値が割り当てられ、フォームが閉じられてデフォルト値が設定されると破棄されます = 0

質問: 破棄される前にクラス B の値を保存するにはどうすればよいですか? そのため、クラス B の値にアクセスして検証を実行できます。

4

3 に答える 3

1

Class Aとがwi​​n -form で、からClass B開いているとします。次のようなメソッドをフォームに記述します。ABA

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た。

于 2012-05-14T03:34:28.683 に答える
0

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
}

それが役に立てば幸い。

于 2012-05-14T05:40:09.803 に答える
0

私は Observable パターンがあなたを助けると信じています。次のチェーンを使用します: メイン スレッド (winforms の場合はフォーム) は、閉じる前に A にイベントを送信し、A は破棄する前に B にイベントを送信します。

于 2012-05-14T05:28:28.160 に答える