计划:我想要求第二个Form2的用户输入一些文本。当此Form2关闭时,我希望在Form1上的文本框中显示输入文本.
在按钮事件上,在Form2上我可以到达Form2 1的文本框:
Form1 form1 = new Form1();
和:
form1.myText = "Test Name";
然后我关闭了Form2:
this.Close();
但是值"Test Name“没有出现在form1 1的文本框中.我没搞错。
发布于 2015-02-26 04:22:44
调用new Form1()
时,将创建Form1
的新实例。您有两个Form1
对象。这就是你的代码不能工作的原因。
如果希望快速实现,请将Form1
作为变量添加到Form2
类中。
public Form1 form1;
然后,您可以在显示Form2
之前设置它。
Form2 form2 = new Form2();
form2.form1 = this;
form2.Show();
请记住删除此部分:Form1 form1 = new Form1();
。
现在你的代码应该可以工作了。
发布于 2015-02-26 04:15:52
在Form2上创建事件处理程序,并在此事件上从Form1钩子打开Form2时。在form2中,使用您自己的事件触发此事件,其中包含需要在Form1中显示的文本。
另一个解决办法是采取行动。在Form2中创建属性操作,打开时Form2设置此操作。当Form2关闭时,可以像_action.Invoke(textWhichUneed);
那样执行此操作
发布于 2015-02-26 04:13:18
您应该在关闭前进行赋值。例如
form1.myText = "Test Name";
this.Close();
另外,不应该创建form1,而应该通过它。如何将form1传递给form2?
https://stackoverflow.com/questions/28742111
复制