2016-09-23 2 views
0

Я хотел бы отобразить значение из текстового поля в текстовое поле в другой форме. Я вошел в этот код во второй форме (первая форма является один с текстовым полем я получаю значение из):Как получить ввод пользователя в текстовое поле из другой формы?

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

Что мне нужно, чтобы отобразить на пользовательский ввод, хотя и TextBox отображается только объявленное значение 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; 
} 
Смежные вопросы