1//定义代理
2public delegate void ConnectionErrorDelegate(ConnectionStatus status, string msg);
3//定义代理事件
4public event ConnectionErrorDelegate ConnectionErrorEvent;
5//定义代理对象
6private ConnectionErrorDelegate deleg = null;
7//定义代理的方法
8deleg = new ConnectionErrorDelegate(service_ConnectionErrorEvent);
9//将代理对象赋值给service对象的代理事件
10 service.ConnectionErrorEvent += deleg;
11//触发这个事件
12ConnectionErrorEvent(status, errmsg);
先来分析一下,之前,我们常用了已经定好的代理和事件,我们要作的就是实例化代理对象,也就是真真要执行的方法,代理事件,和代理早就在.net组件中了,拿按钮的单击事件来说2public delegate void ConnectionErrorDelegate(ConnectionStatus status, string msg);
3//定义代理事件
4public event ConnectionErrorDelegate ConnectionErrorEvent;
5//定义代理对象
6private ConnectionErrorDelegate deleg = null;
7//定义代理的方法
8deleg = new ConnectionErrorDelegate(service_ConnectionErrorEvent);
9//将代理对象赋值给service对象的代理事件
10 service.ConnectionErrorEvent += deleg;
11//触发这个事件
12ConnectionErrorEvent(status, errmsg);
我们在设计器中看到的是 this.button1.Click += new System.EventHandler(this.button1_Click);
其中的EventHandler
// 摘要:
// 表示将处理不包含事件数据的事件的方法。
[Serializable]
[ComVisible(true)]
public delegate void EventHandler(object sender, EventArgs e);
而this.button1.Click则是
// 表示将处理不包含事件数据的事件的方法。
[Serializable]
[ComVisible(true)]
public delegate void EventHandler(object sender, EventArgs e);
//
// 摘要:
// 在单击控件时发生。
public event EventHandler Click;
现在大家明白了,我们要做的是定义个和代理相同参数的方法,将这个代理方法的入口给事件,点击按扭,就可以了// 摘要:
// 在单击控件时发生。
public event EventHandler Click;
在单击按钮时,应该是产生了Click(boject,e.empter);的方法,这里面的参数是乱写的,大概就是表示鼠标的一些参数
具体思路就是这样,有什么不明白的可以加我的群聊