委托(一个主窗体统计多个从窗体的按钮单击的次数)

  最近在学习金老师的《.NET2.0面向对象编程揭秘》,学到了13章,委托、事件驱动和异步调用。书上有个试一试,要求:利用委托,达到一个主窗体统计多个从窗体的按钮单击的次数。

效果如下:

 

frmMain
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Text;
 7 using System.Windows.Forms;
 8 
 9 namespace DelegateInForm
10 {
11     public partial class frmMain : Form
12     {
13         public frmMain()
14         {
15             InitializeComponent();     
16         }
17         private void ShowCount(string count)
18         {
19             lblCount.Text = count;
20         }
21 
22         private void btnClick_Click(object sender, EventArgs e)
23         {
24             //创建从窗体对象并显示
25             frmOther frm = new frmOther();
26             frm.recorder = this.ShowCount;//向从窗体的委托变量赋值
27             frm.Show();
28         }
29     }
30 }

 

 

frmOther
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Text;
 7 using System.Windows.Forms;
 8 
 9 namespace DelegateInForm
10 {
11     public partial class frmOther : Form
12     {
13         //定义了一个委托类型ShowInfo
14         public delegate void ShowInfo(string info);
15 
16         public frmOther()
17         {
18             InitializeComponent();
19         }
20         //委托变量recorder
21         public ShowInfo recorder;
22         private static int counter = 0;//计数器,使用static可以多个从窗体点击计数
23         private void btnClickME_Click(object sender, EventArgs e)
24         {
25             counter++;
26             if (recorder != null)
27             {
28                 recorder(counter.ToString());
29             }
30         }
31     }
32 }

之后,我想进一步修改,在一个主窗体上单击按钮,多个从窗体同时显示单击的次数。只是对上面的代码修改了一下,在从窗体初始化后,向主窗体的委托变量赋值时,出现了错误。请大家指教,谢谢。

posted @ 2010-01-28 16:08  快乐八哥  阅读(505)  评论(1编辑  收藏  举报