将Form2变量转换为Form1(TextBox中的用户文本输入)

时间:2015-02-26 12:10:16

标签: c# .net winforms visual-studio

计划: 我想要用第二个Form2的用户输入一些文本。 当这个Form2关闭时,我想在Form1上的文本框中显示输入文本...

在按钮事件上,在Form2上,我可以访问Form1的文本框:

Form1 form1 = new Form1();

form1.myText = "Test Name";

然后我关闭Form2:

this.Close();

但价值"测试名称"没有出现在form1的文本框中...... 我没有收到错误。

3 个答案:

答案 0 :(得分:3)

当您致电new Form1()时,会创建Form1的新实例。您有两个Form1对象。这就是为什么你的代码不起作用的原因。

如果您想加快速度,请将Form1作为变量添加到Form2类。

public Form1 form1;

然后您可以在显示Form2之前设置它。

Form2 form2 = new Form2();
form2.form1 = this;
form2.Show();

请务必删除此部分:Form1 form1 = new Form1();

现在你的代码应该可行了。

答案 1 :(得分:0)

在Form2上创建事件处理程序,并在此事件中从Form1挂起打开Form2。在form2中使用您自己的eventargs触发此事件,其中包含您需要在Form1中显示的文本。

另一个解决方案是Action。在Form2中创建属性Action并在打开时Form2设置此操作。当Form2关闭时,触发此操作,如_action.Invoke(textWhichUneed);

答案 2 :(得分:-1)

您应该在关闭前进行赋值。例如

form1.myText = "Test Name";
this.Close();

同样不应该创建form1,而是传递。你如何将form1传递给form2?