将 Form2 变量获取到 Form1(TextBox 中的用户文本输入)
Getting Form2 variable to Form1 (User text input in TextBox)
计划:
我想要求第二个 Form2 的用户输入一些文本。
当这个 Form2 关闭时,我想在 Form1 的文本框中显示输入文本...
在 Form2 上的按钮事件中,我可以到达 Form1 的文本框:
Form1 form1 = new Form1();
并且:
form1.myText = "Test Name";
然后我关闭 Form2:
this.Close();
但是值 "Test Name" 没有出现在 form1 的文本框中...
我没有收到错误。
您应该在成交前进行赋值。例如
form1.myText = "Test Name";
this.Close();
此外,不应创建 form1,而是将其传递。如何将 form1 传递到 form2?
在 Form2 上创建事件处理程序,并在从 Form1 挂钩打开 Form2 时处理此事件。在 form2 中,使用您自己的 eventargs 触发此事件,其中包含您需要在 Form1 中显示的文本。
另一种解决方案是 Action。在 Form2 中创建 属性 操作,并在打开 Form2 时设置此操作。当 Form2 关闭时触发此操作,如 _action.Invoke(textWhichUneed);
当您调用 new Form1()
时,会创建 Form1
的新实例。您有两个 Form1
的对象。这就是为什么您的代码不起作用的原因。
如果你想让它变快,将Form1
作为变量添加到Form2
class。
public Form1 form1;
然后你可以在显示之前设置它Form2
。
Form2 form2 = new Form2();
form2.form1 = this;
form2.Show();
记得删除这部分:Form1 form1 = new Form1();
。
现在您的代码应该可以工作了。
计划: 我想要求第二个 Form2 的用户输入一些文本。 当这个 Form2 关闭时,我想在 Form1 的文本框中显示输入文本...
在 Form2 上的按钮事件中,我可以到达 Form1 的文本框:
Form1 form1 = new Form1();
并且:
form1.myText = "Test Name";
然后我关闭 Form2:
this.Close();
但是值 "Test Name" 没有出现在 form1 的文本框中... 我没有收到错误。
您应该在成交前进行赋值。例如
form1.myText = "Test Name";
this.Close();
此外,不应创建 form1,而是将其传递。如何将 form1 传递到 form2?
在 Form2 上创建事件处理程序,并在从 Form1 挂钩打开 Form2 时处理此事件。在 form2 中,使用您自己的 eventargs 触发此事件,其中包含您需要在 Form1 中显示的文本。
另一种解决方案是 Action。在 Form2 中创建 属性 操作,并在打开 Form2 时设置此操作。当 Form2 关闭时触发此操作,如 _action.Invoke(textWhichUneed);
当您调用 new Form1()
时,会创建 Form1
的新实例。您有两个 Form1
的对象。这就是为什么您的代码不起作用的原因。
如果你想让它变快,将Form1
作为变量添加到Form2
class。
public Form1 form1;
然后你可以在显示之前设置它Form2
。
Form2 form2 = new Form2();
form2.form1 = this;
form2.Show();
记得删除这部分:Form1 form1 = new Form1();
。
现在您的代码应该可以工作了。