2016-04-27 11 views
0

私はC#を使用している私のWindowsアプリケーションで3つのフォームを持っています。私はフォーム1から他のフォーム(2,3)への値にアクセスしたい。フォーム1で価値を得て、単純な機能を使用してこの値を他のページにアクセスすることを意味します。 フォームデザインは、空白のテキストボックスのユーザーに1つのフォームからさまざまなフォームへの値のアクセス

enter image description here

は、文字列の値を与えていると、別の文字列変数に格納しています。コードは以下のようになります。

public string comp=""; 
private void button4_Click(object sender, EventArgs e) 
     { 
      comp = textBox1.Text; 
     } 
     public string getcomp() 
     { 
      return comp; 
     } 

上記のgetcomp()関数は、ボタンクリックイベントでフォーム2とフォーム3にアクセスしています。 これらの質問を解決するのを手伝ってください。

答えて

0

この方法を試してください。

をForm1 public static string comp

Form2のMessageBox.show(Form1.comp);

0

あなたは正しい、Form2をから、をForm1で定義された関数getcomp()を呼び出そうとしていますか?

この関数はすでにpublicと宣言されています。これは、他の形式でも可視であることを意味します。だからform1.getcomp()を呼び出すことでそれを起動し、他のフォームから戻り値を取得することができます。これは、アプリケーションにのフォーム1のインスタンスがある場合にのみ有効です。

ない場合は、Form2のを示す/開封後をForm1を配置されている場合たとえば、あなたは何のオブジェクトが存在しないので、あなたは上の関数を呼び出すことができ、このようにそれに到達することはできません。これを行うには、getcomp()staticと宣言することができます。そうすることで、たとえのインスタンスが存在しない場合でも、フォーム1が存在していても、他のすべてのフォームに関数を表示することができます。

しかし、その機能は実際のところ関係していないので、私は強くお勧めしますすべてのフォームはに到達する別のクラスに入れてください。

変数のスコープについてのチュートリアルを自由に読んでください。

0

これを試してください。 form1からstring compの値を入れることができる新しい変数をform2に宣言します。

String comp2; 
Form1 form1 = new Form1(); 
comp2 = form1.comp; 
関連する問題