C#基础概念之事件

 事件,是C# 编程模型中重要的一个概念,通过对事件的理解,可以更好的了解C#程序运行机制。C#中的事件,可以简单的理解为类或者对象发生了一件事,并且把这件事通知给了其他的类或者对象,其他的类或者对象可以根据事件的消息有所反应。这非常类似设计模式中的观察者模式。

引发事件的类或对象,可以称之为事件源,注册并对处理事件的类或者对象可以称为事件订阅者或者事件监听者,我比较喜欢称之为事件监听者。

比如:构建一个winform应用,在窗体Form1简单放置一个按钮控件,然后,双击按钮,则可以进入代码视图中按钮click事件处理程序。

   
   
private void button1_Click( object sender, EventArgs e) { /// sender即表示事件源,e表示通过事件传递过来的消息 }

 这时,还可以打开Form1.designer.cs,还可以找到如下代码:

   
   
this .button1.Click += new System.EventHandler( this .button1_Click);

这行代码表明,当前窗体注册了click事件(click就是Button对象的一个事件),并且用 button1_Click方法进行了处理。EventHandler是一个委托,关于委托可参见我的上一篇文章C#基础概念之委托

以上是对C#事件的一些简单的解释。当然,我们也可以自定义事件。

自定义事件,分为如下几步:

第一步:首先在事件源对象定义事件 

   
   
// 定义事件 public event EventHandler myevnet;
第二步:在事件监听者,订阅事件
   
   
// 事件注册 this .myevnet += new EventHandler(MyEventHandler);

第三步:在事件监听者,编写事件处理代码:

   
   
/// <summary> /// 事件的处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MyEventHandler( object sender, EventArgs e) { MessageBox.Show( " myevent is raised....... " ); }

第四步:在事件源对象引发事件 

   
   
// 判断事件是否被注册 if (myevnet != null ) { // 引发事件 myevnet( this .button1, new EventArgs()); }

 这仅是个演示,供各位参考,下面给出完整代码,方便测试

简单自定义事件,完整代码
    
    
1 public partial class Form1 : Form 2 { 3 // 定义事件 4   public event EventHandler myevnet; 5 6 public Form1() 7 { 8 InitializeComponent(); 9 // 事件注册 10   this .myevnet += new EventHandler(MyEventHandler); 11 12 } 13 14 <SPAN style="COLOR: #000000" < dd>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值