码迷,mamicode.com
首页 > Windows程序 > 详细

C#中多播委托实现多窗体通信

时间:2016-05-13 04:18:03      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:

</pre>     在委托中,单播委托就是只能调用一个方法;委托中还有另一种方法,改方法能够实现调用多个方法,称为多播委托,方式就是“+=”,实现调用多个方法,也可以用“-=”将固定方法去掉。下面接着上个文章,我们来实现多窗体的通信。<p></p><p>主窗体</p><pre name="code" class="csharp">namespace MoreContact
{
    /// <summary>
    /// 委托定义
    /// </summary>
    public delegate void MoreContactDelegate(string word);
    public partial class FrmMain : Form
    {
        //声明委托
        MoreContactDelegate Message;
        public FrmMain()
        {
            InitializeComponent();
            //窗体实例化
            FrmOther1 f1 = new FrmOther1();
            FrmOther2 f2 = new FrmOther2();
            FrmOther3 f3 = new FrmOther3();
            f1.Show();
            f2.Show();
            f3.Show();

            //调用委托变量与方法联系到一起
            Message = f1.Receive;
            Message += f2.Receive;
            Message += f3.Receive;
        }
        private string word;
        //通过单击调用委托实现固定的方法
        private void button1_Click(object sender, EventArgs e)
        {
            word = textBox1.Text;
            Message(word);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            word = "";
            Message(word);
            textBox1.Text = "";
        }
    }
}
从窗体1-3程序都是一样:
<pre name="code" class="csharp">namespace MoreContact
{
    public partial class FrmOther1 : Form
    {
        public FrmOther1()
        {
            InitializeComponent();
        }
        //定义方法
        public void Receive(string word)
        {
            textBox1.Text = word;
        }
    }
}



实现结果:技术分享

C#中多播委托实现多窗体通信

标签:

原文地址:http://blog.csdn.net/j_kang/article/details/51336551

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!