C#中的委托调用(委托绑定式)

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值