在WinForms窗体之间传递数据

3

我在项目中创建了一个次要表单,可以从主表单获取数据,并且当点击按钮时应该将一些数据传递回主表单。
以下是代码:

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;
            }
        }

我的问题是我不知道在什么事件中尝试获取来自add.cs的数据,当button1(在add.cs中)被点击后。我应该用哪个事件检查数据是否已经到达?


如果您自己已经回答了这个问题,请随意发布答案,这可能会帮助其他人。 - Sam Saffron
2个回答

0
我刚刚把它改成了这样:
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; }

0
如果您需要在关闭子窗体之前了解更改的值,自定义事件将让您优雅地通知父窗体。
以下是关于C#中委托和事件的绝佳教程。

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

一旦子窗体被实例化,父窗体将注册接收来自子窗体的一个或多个自定义事件(根据需要)。

另一种方法是将父窗体的引用传递到子窗体中,以便子窗体可以调用父窗体的函数或属性来通知变化。然而,这种方法会在两个窗体之间创建紧密耦合,并且不被鼓励使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接