将 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();

现在您的代码应该可以工作了。