在WinForms表单之间传递数据

我在我的项目中创建了一个辅助表单,它可以从主表单中获取数据,并且在单击按钮时应该将一些表单传递给主表单。
这是代码:

Add.cs:

private void button1_Click(object sender, EventArgs e) { main ma = new main(); ma.optionType = "add"; ma.optionName = txtName.Text; ma.optionURL = txtURL.Text; ma.optionInterval = "12"; //What should I pass here? this.Close(); } 

main.cs:

  private string opt;// create a property public string optionType { get { return opt; } set { opt = value; } } private string opt2;// create a property public string optionName { get { return opt2; } set { opt2 = value; } } private string opt3;// create a property public string optionURL { get { return opt3; } set { opt3 = value; } } private string opt4;// create a property public string optionInterval { get { return opt4; } set { opt4 = value; } } 

我的问题是,在点击button1(在add.cs中)后,我不知道何时尝试获取来自add.cs的数据。 我应该在什么事件中检查数据是否来了?

如果您需要在关闭子表单之前了解更改的值,则可以使用自定义事件优雅地通知父表单。

这是关于C#中的委托和事件的精彩教程

http://www.akadia.com/services/dotnet_delegates_and_events.html

一旦子表单被实例化,父表单将注册以从子进程接收一个或多个自定义事件(根据需要)。

另一种方法是将对父表单的引用传递给子表单,以便子表单可以调用父表单的函数或属性来通知更改。 然而,这种方法在两种forms之间产生紧密耦合,并且不鼓励。

我刚把它改成了这个:
add.cs:

  public string optionType { get; set; } public string optionName { get; set; } public string optionURL { get; set; } public string optionInterval { get; set; } public int yCoord { get; set; }