委托、窗体传值、多播委托

来源:互联网 发布:linux服务器设置ip地址 编辑:程序博客网 时间:2024/05/18 03:20

窗体传值例子说明:

1,  在窗体1中定义方法ShowMsg,带一个string类型的参数。通过点击button1按钮,将该方法传给窗体2

2,  窗体2中声明一个委托DelTest,与ShowMsg方法有相同的签名。同时声明Form2的构造函数Form2(DelTest del);接收从窗体1传过来的方法。

3,  点击窗体2中的button按钮,将textbox的值作为参数传给ShowMsg方法

窗体1:

public partialclass Form1 :Form

    {

        publicForm1()

        {

            InitializeComponent();

        }

 

        private voidbutton1_Click(object sender, EventArgs e)

        {

            Form2frm2 =new Form2(ShowMsg);

            frm2.Show();

        }

 

 

        voidShowMsg(string str)

        {

            label1.Text = str;

        }

}

 

 

窗体2:

//声明一个委托

    public delegate void DelTest(string str);

    public partial class Form2 : Form

    {

        public DelTest_del;

        publicForm2(DelTest del)

        {

            this._del= del;

            InitializeComponent();

        }

 

        private voidbutton1_Click(object sender, EventArgs e)

        {

            _del(textBox1.Text);

        }

}

 

 

多播委托

public delegatevoid DelTest();

    class Program

    {

        static voidMain(string[] args)

        {

            DelTest del= T1;

            del += T2;

            del += T3;

            del+= T4;

            del -= T3;

            del -= T1;

            del();

            Console.ReadKey();

        }

 

        public static voidT1()

        {

            Console.WriteLine("我是T1");

        }

        public static voidT2()

        {

            Console.WriteLine("我是T2");

        }

 

        public static voidT3()

        {

            Console.WriteLine("我是T3");

        }

        public static voidT4()

        {

            Console.WriteLine("我是T4");

        }

    }

 

0 0
原创粉丝点击