我想将文本框中的值显示为不同形式的文本框。我将此代码输入到第二个表单中(第一个表单是带有文本框的表单,我从中获取了值):
private void Form2_Load (object sender, EventArgs e)
{
Form1 frm = new Form1();
textBox.Text = frm.textBox1.Text;
}
我需要显示的是用户输入,textBox只显示textBox1的声明值。
答案 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;
}