2016-09-23 23 views
0

私は、テキストボックスから別のフォームのテキストボックスに値を表示したいと思います。別のフォームからテキストボックスでユーザー入力を取得する方法は?

private void Form2_Load (object sender, EventArgs e) 
{ 
    Form1 frm = new Form1(); 
    textBox.Text = frm.textBox1.Text; 
} 

私は何を表示するのに必要なことは、ユーザの入力ががあり、TextBoxなどにのみ表示されます。私は(最初の形式は、私はから値を取得していますテキストボックスとの一つである)は、第2のフォームにこのコードを入力しますtextBox1の宣言された値。

+0

これは、あなたが 'Form2_Load'イベントでこれを行っているためです。セカンダリフォームを作成するかもしれませんが、ユーザ入力イベントでテキストボックスを更新する必要があります –

答えて

1

これは新しいインスタンスForm1作成:

Form1 frm = new Form1(); 

何もそのインスタンス内の任意の入力に入力されていないが、そうfrm.textBox1.Textには価値がありません。必要なのはの既存のインスタンスへの参照です。

おそらくForm1は、Form2を作成していますか? (または、少なくとも共通のコンテナ/親によって作成/表示されますか?)Form2にはForm1への参照が必要な場合は、作成時に参照する必要があります。たとえば、コンストラクタのパラメータ:次に

private Form1 form1Instance { get; set; } 

private Form2() { } 

public Form2 (Form1 form1) 
{ 
    this.form1Instance = form1; 
} 

あなたがForm2のインスタンスを作成するときは、その依存関係でそれを供給する必要があるだろう:に続いて

Form2 form2 = new Form2(this); 

または

Form2 form2 = new Form2(someInstanceOfForm1); 

Form2提供されたインスタンスを参照できます。

private void Form2_Load(object sender, EventArgs e) 
{ 
    textBox.Text = this.form1Instance.textBox1.Text; 
} 
関連する問題