【发布时间】:2011-08-27 02:43:42
【问题描述】:
可能重复:
How do you pass an object from form1 to form2 and back to form1?
我习惯于通过简单地将变量作为参数传递来在 Windows 窗体之间传递变量。
现在我有一个已经打开的表单(我们称之为FormMain)和另一个应该像对话框一样的表单(FormTask)。用户在填写FormTask 上的信息之前无法与主表单交互。 FormTask 只包含一个文本框,这个文本框的值应该返回给FormMain,并作为变量进行跟踪。 FormTask 需要一个参数 exerciseType。当FormTask 打开时,它会检查此参数的值并相应地设置文本框的默认值。这已经奏效了,我只是对如何将我的字符串值返回到已经打开的MainForm 毫无头绪。
这些对话框似乎只能返回DialogResults,这不是我想要的。我也不是太有经验,我宁愿避免摸索着制作自己的自定义对话框。
FormMain:
FormTask formTask = new FormTask(exerciseType);
formOpgaveInvoker.ShowDialog();
FormTask:
private void button1_Click(object sender, EventArgs e)
{
string opgave = textBoxOpgave.Text;
// return string value to MainForm here
}
【问题讨论】:
-
由于键盘前的每个人都已经发布了答案,我自己不会尝试这样做。但请记住,您仍应检查调用
ShowDialog返回的DialogResult值。您希望允许用户取消(即关闭表单而不输入任何内容)的情况,并且您不想将他们在文本框中输入的任何内容视为实际输入。