C#的自定义事件的处理
来源:互联网 发布:淘宝阿里旺旺免费下载 编辑:程序博客网 时间:2024/05/27 20:45
此篇文章的转载处来于 http://dev.csdn.net/Develop/article/22/22951.shtm 。抄袭他的东西是不道德的,我会加入一些自己的想法.
public delegate void EventHandler( object sender , EventArgs e )
//delegate是定义事件委派的关键字,然后此事件的返回类型是void,也就是没有返回值,EvenHandler是一个委派申明,而这个委派申明看起来更象是我们定义的一个类型.
public event EventHandler Click;
//event是定义事件的关键字,EventHandler则是把此处的Click事件与EvenHandler挂钩.如果在后面调用Click方法,则会用EventHandler找到对应的事件具体的处理方法.
private void button1_Click(object sender, System.EventArgs e){.................}//这个我们将把他作为Click事件的具体处理方法.按照英文书中所描述的,这个方法与Click所在类是不能相同的.
但实际上此处的处理方法与Click并无任何关系.那么怎么将他们建立关系呢?使用如下语句即可.
this.button1.Click += new System.EventHandler(this.button1_Click);//这样就把他绑定好了.这行代码是要放在上面代码外面的.
现在来讲个例子.
using System;//命名空间class UserInputMonitor//定义一个类{ public delegate void UserRequest(object sender,EventArgs e);//委派 //定义委托 public event UserRequest OnUserRequest;//与上面的挂钩 //此委托类型类型的事件 public void Run()//一个死循环函数,不停的监听用户的输入并作出相应的反映,触发事件 { bool finished=false; do { if (Console.ReadLine()=="h") { OnUserRequest(this,new EventArgs()); } }while(!finished); }}
public class Client//定义类{ public static void Main() { UserInputMonitor monitor=new UserInputMonitor();//定义monitor,此实例有事件. new Client(monitor);//最重要的就是这里,将事件与实际处理代码挂钩. monitor.Run();//开始监听. } private void ShowMessage(object sender,EventArgs e)//事件的具体处理方法 { Console.WriteLine("HaHa!!"); } Client(UserInputMonitor m)//初始化函数 { m.OnUserRequest+=new UserInputMonitor.UserRequest(this.ShowMessage); //将事件的具体处理方法附加上去m.OnUserRequest+=new m.UserRequest(this.ShowMessage); //注意这种写法是错误的,因为委托是静态的 }}为了加深印象,我来模仿一下这个事件的发生过程.第一步,Main()被调用,此时,定义了一个UserInputMonitor的实例monitor.第二步,通过初始化函数将ShowMessage方法与monitor的OnUserRequest事件挂钩,OnUserRequest发生就是ShowMessage发生的时候,开始监听.第三步:当监听到"h"的时候,触发事件,此时ShowMessage就会执行.整个过程分析完毕.如果我有分析得步对得,请各位高人指教,希望作者能够看到我得分析,也请指教.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qiuqiu1140/archive/2006/06/30/854718.aspx
- C#的事件处理和自定义事件
- C#的自定义事件的处理
- c#自定义控件中事件的处理
- C#的事件处理和自定义事件的进一步理解
- 浅析C#的事件处理和自定义事件!
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件_C#教程
- 浅析C#的事件处理和自定义事件_C#教程
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件(转)
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件
- 浅析C#的事件处理和自定义事件
- C#委托事件及自定义事件的处理
- 浅析C#的事件处理和自定义事件
- C#委托事件及自定义事件的处理
- C#委托事件及自定义事件的处理
- (转)《蜗居》带给校园男女多少悲喜
- 中国饭局里的潜规则,细节——以后很有用哦!(转)
- 拾贝
- 我们到底该怎么学技术?如何成为优秀的技术人员
- 毕业工作需要明白的
- C#的自定义事件的处理
- 喧宾夺主的名楼古诗(转)
- PowerBuilder开发分布式计算结构之代理对象
- (感悟)熟能生巧,不知不觉量变就引发质变了。
- 十二星座超级可爱的小笑话
- 写给IT的大学生们的一点建议(转)
- 先转过来,留着以后用
- 今天有时间开始网络数据库开发的学习
- 软件性能测试论文草稿