可能重复:
How do you pass an object from form1 to form2 and back to form1?传递从对话形式的价值主要形式
我已经习惯了通过简单地将它们作为参数传递的窗口形式之间的变量。 现在我有一个已经打开的表单(我们称之为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'值。您希望允许用户*取消的情况*(即,关闭表单而不输入任何内容),并且不希望将他们在文本框中输入的内容视为实际输入。 – 2011-05-17 10:00:18