窗体传值(通过委托方法传值)

2020-02-18 更新

 方法也可以像参数一样传递(委托是一个类,引用类型)
下面是窗体1的textBox值传到窗体2,窗体2的值也可以通过委托把值传给窗体1

原创来自 http://www.luofenming.com/show.aspx?id=ART2017070900002

窗体1 代码

namespace 委托
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(this.textBox1.Text,M6);
            f2.Show();
        }
        private void M6(string val)
        {
            this.textBox1.Text = val;
        }
    }
}
窗体2 代码
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        public Form2(string val, Action<string> MM)
        {
            InitializeComponent();
            this.textBox1.Text = val;
            this.mm = MM;
        }
        Action<string> mm;
        private void button1_Click(object sender, EventArgs e)
        {
            mm(textBox1.Text);
     //委托是一个类,引用类型,Form1的M6方法传给了From2,From2调用mm,也就是调用Form1的M6
        }
    }