将值从对话框表单传递到主表单

Jor*_*ort 20 c# forms dialog

可能重复:
如何将对象从form1传递给form2并返回到form1?

我习惯于在窗体之间传递变量,只需将它们作为参数传递即可.现在我有一个已经打开的表单(让我们称之为FormMain),另一个表单应该像对话框一样(FormTask).在填写信息之前,用户无法与主表单进行交互FormTask.FormTask只包含一个文本框,应该返回此文本框的值,并将其FormMain作为变量跟踪.FormTask需要一个参数exerciseType.当FormTask打开检查此参数的值,并相应地设置文本框的默认值.这已经有效了,我对如何将我的字符串值返回到已经打开状态感到有点无能为力MainForm.这些对话框似乎只能返回DialogResults,这不是我所追求的.我也没有太多的经验,我宁愿避免摸索自己制作自己的自定义对话框.

FormMain:

FormTask formTask = new FormTask(exerciseType);
formOpgaveInvoker.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

FormTask:

private void button1_Click(object sender, EventArgs e)
{
    string opgave = textBoxOpgave.Text;
    // return string value to MainForm here
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*cya 32

在FormTask中创建公共属性

public string Opgave { get {return textBoxOpgave.Text;}}
Run Code Online (Sandbox Code Playgroud)

并在ShowDialog()之后检查它;

FormTask formTask = new FormTask(exerciseType);
formOpgaveInvoer.ShowDialog();
formOpgaveInvoer.Opgave;  // here it is
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的回答,我现在觉得自己很蠢:P (2认同)
  • `FormTask`不会那样处理.调用`Dispose()`或(更好)使用`using'块. (2认同)