您的位置:首页 > 其它

利用委托的方法实现2个窗体之间的通信的一个小练习

2016-05-04 14:44 531 查看

-----------
发送端窗体代码-------------


using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace 用委托的方法进行2个窗体之间的通讯

{

    public partial class Form2 : Form

    {

        public Form2()

        {

            InitializeComponent();

        }

        public DelegateConnect send;//第二步:定义一个委托的对象

//这里为什么没有直接用DelegateConnect send=new DelegateConnect(方法名);

//因为这里需要传的方法参数是在Form1(接受端)定义的,并且在Form1里面进行绑定

        int count = 0;

        private void button1_Click(object sender, EventArgs e)

        {

            count++;

            if (send != null)

            {

                send(count.ToString());//第四步:给委托对象需要调用的函数传递参数;

            }

        }

      

         private void Form2_Load(object sender, EventArgs e)

         {

         }

    }

        public delegate void DelegateConnect(string str);//第一步:声明一个委托的类

 

}
----------- 接收端窗体代码-------------

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace 用委托的方法进行2个窗体之间的通讯

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

          Form2 form = new Form2();

            form.Show();

            form.send = this.receive;//第三步:在这里让委托的对象send跟receive方法(函数)绑定

//让委托的这个对象去调用receive这个函数

                                     //而这个函数的参数由Form2的send(count.ToString());这句来传递过来

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            

        }

   public      void receive(string str)

        {

            textBox1.Text = str;

        }

    }

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: