2012-02-13 13 views
2

私はクラスで作成された2つのフォームと関数のセットを持っています。私は今、私はForm2の上で、次のコードを使用しています、Form1からクラスから一部の機能を呼び出してもForm1からクラスに格納された変数のいくつかの値とForm2でそれらを使用する必要があります。新しい初期化を行わずにクラスからの関数を呼び出す - C#

private void button1_Click(object sender, EventArgs e) 
    { 
     if (checkBox1.CheckState == CheckState.Checked) 
     { 
      GetSetRequests reqClass = new GetSetRequests(); 
      MessageBox.Show(reqClass.RequestID.ToString()); 
     } 
    } 

RequestIDで作成した変数でありますクラスGetSetRequests。私はform2でその値を使用する必要がありますが、この値はクラスの新しい初期化のためnullになります。新しい初期化をせずにクラスから値と関数を呼び出すことは可能ですか?

+1

静的メソッド? – cadrell0

答えて

0

両方のフォームが同じオブジェクトインスタンスを共有するようにするには、フォームのいずれかから別のフォームにオブジェクトを渡す必要があります。 Form2のコンストラクタにその型のオブジェクトを追加し、Form1がそのインスタンスを作成したらGetSetRequestsをForm2に渡します。

他の人に言われているように、代わりにクラスの静的プロパティを与えることもできますが、他の場所で使用することはできませんでした。

0

変数は静的にすることができます(または、VB.NETのキーワードはより具体的です:shared)。変数はGetSetRequestsクラスのすべてのインスタンス間で共有されます。どのようにして、静的/共有変数はほとんどの場合、悪い考えです。

Form1からForm2にはGetSetRequestsオブジェクトを渡し、両方とも同じインスタンスを使用するようにしてください。

あなたはあなたがその質問をしたので、OIPの原則を読み上げるべきです。以下の記事はJava用ですが、クラスはC#と同じ方法で動作します:http://docs.oracle.com/javase/tutorial/java/concepts/class.html

関連する問題