C#模块间事件处理方法
2010-10-28 16:49
323 查看
一、Delegete.要求方法和返回值签名相同。
二、MethodInfo没有标准。System.Reflection.MethodInfo mdInfo.Invoke()
三、Event 需要有事件参数。
简要介绍C#自定义事件的的五个步骤。
通常C#自定义事件有下面的几个步骤:
1、声明一个delegate: (用于事件的类型的定义)
如:
1. public delegate void 事件名称EventHandler(object serder, EventArgs e);
//事件名称用你的自己的来代替,随后的EventHandler是C#的建议命名规范,当然如果你不想遵守,可以使用任何字符甚至可以不要。
如果你想自定义事件的参数EventArgs,你可以从这个类派生你自己的事件参数类,然后在delegate的声明中,用你的参数类替换EventArgs
注:要全面了解自定义事件的原理,你需要学习有关delegate的知识。
2、在你的类中声明一个事件,并且使用步骤1的delegate作为事件的类型:
2. public event 事件名称EventHandler 事件名称;
3、在你的类中需要触发事件的方法中,添加事件触发代码:
3. 事件名称(this, new EventArgs());
或者:
4. if(事件名称!=null)
5. 事件名称(this, new EventArgs());
//如果使用你自己的事件参数类,你可以用你的参数类事例替换new EventArgs(), 同时在你的参数类中保存你需要传递的数据。
4、C#自定义事件注册:
事件注册和普通的事件注册没有不同,也就是说如果一个外部的对象在你的事件被触发的时候需要作出响应,那么你可以在外部了构造器中(或者适当的地方)对事件进行注册
6. 带有事件的类实例.事件名称+= new 事件名称EventHandler( 事件处理方法名称);
5、编写事件处理方法:
7. public void 事件处理方法名称(object sender, EventArgs e)
8. {
9. //添加你的代码
10. }
注:如果你在类中处理自己的触发事件,你可以选择C#自定义事件步骤4和5的方式,也就是注册自己,也可以在触发事件代码中直接调用事件处理方法。
二、MethodInfo没有标准。System.Reflection.MethodInfo mdInfo.Invoke()
三、Event 需要有事件参数。
简要介绍C#自定义事件的的五个步骤。
通常C#自定义事件有下面的几个步骤:
1、声明一个delegate: (用于事件的类型的定义)
如:
1. public delegate void 事件名称EventHandler(object serder, EventArgs e);
//事件名称用你的自己的来代替,随后的EventHandler是C#的建议命名规范,当然如果你不想遵守,可以使用任何字符甚至可以不要。
如果你想自定义事件的参数EventArgs,你可以从这个类派生你自己的事件参数类,然后在delegate的声明中,用你的参数类替换EventArgs
注:要全面了解自定义事件的原理,你需要学习有关delegate的知识。
2、在你的类中声明一个事件,并且使用步骤1的delegate作为事件的类型:
2. public event 事件名称EventHandler 事件名称;
3、在你的类中需要触发事件的方法中,添加事件触发代码:
3. 事件名称(this, new EventArgs());
或者:
4. if(事件名称!=null)
5. 事件名称(this, new EventArgs());
//如果使用你自己的事件参数类,你可以用你的参数类事例替换new EventArgs(), 同时在你的参数类中保存你需要传递的数据。
4、C#自定义事件注册:
事件注册和普通的事件注册没有不同,也就是说如果一个外部的对象在你的事件被触发的时候需要作出响应,那么你可以在外部了构造器中(或者适当的地方)对事件进行注册
6. 带有事件的类实例.事件名称+= new 事件名称EventHandler( 事件处理方法名称);
5、编写事件处理方法:
7. public void 事件处理方法名称(object sender, EventArgs e)
8. {
9. //添加你的代码
10. }
注:如果你在类中处理自己的触发事件,你可以选择C#自定义事件步骤4和5的方式,也就是注册自己,也可以在触发事件代码中直接调用事件处理方法。
相关文章推荐
- C#"焦点事件"中的Validating处理方法
- c# DataGridView中键盘事件处理方法 转
- C#中SerialPort类中DataReceived事件GUI实时处理方法
- C#中SerialPort类中DataReceived事件GUI实时处理方法
- C#"焦点事件"中的Validating处理方法
- C#窗体间通讯的几种处理方法(事件)
- C#窗体间通讯的几种处理方法(事件)
- C#处理Paint事件的方法
- MFC对话框中处理Enter或Esc按键事件方法
- C#数字图象处理之肤色检测的方法
- C# 使用DataSet+dataAdapter操作后台数据库之事务处理方法1,欢迎拍砖
- C#中事务的处理方法
- C# JSON处理的几种方法
- C# WinForm程序中不在任务栏显示的处理方法
- jQuery动态添加的元素绑定事件处理函数代码的方法及比较
- 初学C#网络编程(二)处理进程结束时事件
- go语言使用go-sciter创建桌面应用(三) 事件处理,函数与方法定义,go与tiscript之间相互调用
- android 长按事件处理方法
- 【C#/GDI】简单图像处理方法
- Jquery事件处理方法