如何从另一个表单中获取文本框中的用户输入?

时间:2016-09-23 12:50:58

标签: c#

我想将文本框中的值显示为不同形式的文本框。我将此代码输入到第二个表单中(第一个表单是带有文本框的表单,我从中获取了值):

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

我需要显示的是用户输入,textBox只显示textBox1的声明值。

1 个答案:

答案 0 :(得分: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;
}