1.采用最直接的方式,不使用事件发布订阅机制,直接绑定
例子:
1 //第一步声明委托
2 public delegate void OpenFormDelegate(string frmNAme);
3
4
5
6 public partial class FormGuide : DockContent
7 {
8 public OpenFormDelegate Openfrom;//第二步创建委托对象
11 private void but_Montior_Click(object sender, EventArgs e)
12 {
13 //发布委托
14 Openfrom("集中监控");
15 }
17 private void SystemSet_Click(object sender, EventArgs e)
18 {
19 //发布委托
20 Openfrom("系统设置");
21 }
22
23 private void SystemLog_Clik(object sender, EventArgs e)
24 {
25 //发布委托
26 Openfrom("系统日志");
27 }
28 }
29
30 //第三步创建委托实现方法
31 private void OpenFromMethod(string FrmName)
32 {
33 //避免重复打开
34 DockContent frm = FindDockContent( FrmName);
35 if (frm != null)
36 {
37 frm.BringToFront();//移动到最前面
38 frm.Activate();
39 return;
41 }
42 else
43 {
44 switch (FrmName)
45 {
46 case "集中监控":
47 new FormMontior().Show(dockmain);
48 break;
49 case "系统设置":
50 new FormSysSet().Show(dockmain);
51 break;
52 case "系统日志":
53 new FormLog().Show(dockmain);
54 break;
55 case "数据分析":
56 new DataStatis().Show(dockmain);
57 break;
58 case "数据记录":
59 new DataStatis().Show(dockmain);
60 break;
61 case "用户管理":
62 new UserManage().Show(dockmain);
63 break;
64 default:
65 break;
67
68 }
70 }
72 }
73
74 //第四步绑定委托
75 formGuide.Openfrom = this.OpenFromMethod;
例子很简单,就是通过委托Openfrom来打开不同的页面,入口参数是页面的名字,实现这个功能的方法有很多,但是思想大于方法,面向对象编程委托机制还是要学的
第一步 声明一个委托(我要委托人办事了 public delegate void OpenFormDelegate(string frmNAme)),第二步建立委托对象(这个人是 OpenFormDelegate Openfrom),第三步具体让他干啥呢(真正的功能函数 private void OpenFromMethod(string FrmName)) ,可以将委托对象不严谨的理解为是对真正应用函数的抽象层,这样就有第四步的绑定操作( formGuide.Openfrom = this.OpenFromMethod;) 一个可以被调用的委托机制就完成了(发布委托),
private void but_Montior_Click(object sender, EventArgs e)
{
//发布委托
Openfrom("集中监控");
}
执行Openfrom("集中监控")时通过对OpenFromMethod(string FrmName)