没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
5页
了解C#中的预定义事件处理机制 在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理。 EventArgs是包含事件数据的类的基类,用于传递事件的细节。 EventHandler是一个委托声明如下 public delegate void EventHandler( object sender, EventArgs e ) 注意这里的参数,前者是一个对象(其实这里传递的是对象的引用,如果是button1的click事件则sender就是button1),后面是包含事件数据的类的基类。
资源详情
资源评论
资源推荐
一、了解 C#中的预定义事件处理机制
在写代码前我们先来熟悉.net 框架中和事件有关的类和委托,了解 C#中预定义事件的处
理。
EventArgs 是包含事件数据的类的基类,用于传递事件的细节。
EventHandler 是一个委托声明如下
public delegate void EventHandler( object sender, EventArgs e )
注意这里的参数,前者是一个对象(其实这里传递的是对象的引用,如果是 button1 的
click 事件则 sender 就是 button1),后面是包含事件数据的类的基类。
下面我们研究一下 Button 类看看其中的事件声明(使用 WinCV 工具查看),以 Click 事
件为例。
public event EventHandler Click;
这里定义了一个 EventHandler 类型的事件 Click
前面的内容都是 C#在类库中已经为我们定义好了的。下面我们来看编程时产生的代码。
private void button1_Click(object sender, System.EventArgs e)
{
...
}
这是我们和 button1_click 事件所对应的方法。注意方法的参数符合委托中的签名(既参
数列表)。那我们怎么把这个方法和事件联系起来呢,请看下面的代码。
this.button1.Click += new System.EventHandler(this.button1_Click);
把 this.button1_Click 方法绑定到 this.button1.Click 事件。
下面我们研究一下 C#事件处理的工作流程,首先系统会在为我们创建一个在后台监听
事件的对象(如果是 button1 的事件那么监听事件的就是 button1),这个对象用来产生事件,
如果有某个用户事件发生则产生对应的应用程序事件,然后执行订阅了事件 的所有方法。
二、简单的自定义事件(1)
首先我们需要定义一个类来监听客户端事件,这里我们监听键盘的输入。
定义一个委托。
public delegate void UserRequest(object sender,EventArgs e);
前面的 object 用来传递事件的发生者,后面的 EventArgs 用来传递事件的细节,现在暂
时没什么用处,一会后面的例子中将使用。
下面定义一个此委托类型类型的事件
public event UserRequest OnUserRequest;
下面我们来做一个死循环
public void Run()
{
bool finished=false;
do
{
if (Console.ReadLine()=="h")
{
OnUserRequest(this,new EventArgs());
}
}while(!finished);
}
q136222464
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0