C#对象间的协作和信息交换(五)利用委托(Delegate)广播消息

利用委托(Delegate)广播消息

  委托就是其它对象的方法托付给委托变量,由委托变量一起执行。
  最终效果图和普通实现方法类似。
  C#对象间的协作和信息交换(五)利用委托(Delegate)广播消息_第1张图片
  下面看下编程实现,代码项目:BroadCastMessage_UseDelegate。
1. 首先定义一个委托集合变量和一个从窗体变量。

private Action<int> ReceiveMethods;
private frmOther other = null;


2. 点击“创建窗口”按钮时创建从窗体,然后把从窗体的ShowCounter方法加到委托变量ReceiveMethods中。

private void btnCreate_Click(object sender, EventArgs e)
{
    NewForm();
}
void NewForm()
{
    other = new frmOther();
    ReceiveMethods += other.ShowCounter;
    other.Show();
}


3. 在“计数增1”按钮中通过委托变量执行其中的方法。

private int counter = 0;
private void btnAdd_Click(object sender, EventArgs e)
{
    counter++;
    if(ReceiveMethods!=null)
    {
        ReceiveMethods(counter);
    }
}


4. 从窗体中的ShowCounter方法,获取主窗体中的计数并显示到label1中。

public  void ShowCounter(int counter)
{
    label1.Text = counter.ToString();
}

你可能感兴趣的:(c#,面向对象)