标签:
</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; } } }
标签:
原文地址:http://blog.csdn.net/j_kang/article/details/51336551