zoukankan
html css js c++ java
Framework1.1的事件处理
事件一般写的不是很多,多用在自定义控件等地方。又很容易遗忘,一般分以下几个步骤。 定义事件的标准模式如下(参考了.net框架设计一书)
1.构造一个静态只读对象标识事件
protected
static
readonly
object
clickEvent;
2.为事件定义一个继承自EvevtArgs的类型,用于保持传递给事件接受者的附加信息。如果没什么特别的信息的话,那我们用框架里的System.EventArgs类型就可以了。
public
class
CustomEventArgs:EventArgs
{}
3.定义一个委托类型,指定事件触发时被调用的方法原形
public
delegate
void
Gate_Click(
string
clickName);
4定义一个受保护的实例字段,可以引用一个集合来管理一组事件事件/委托对。一般可以使用System.ComponentMoedl.EventHandlerList类型。所以使用Control的Events类就可以了。
5为事件定义访问器的方法用于集合上添加/移除委托实例
public
event
Gate_Click ClickEvent
{
add
{
Events.AddHandler(clickEvent,value);
}
remove
{
Events.RemoveHandler(clickEvent,value);
}
}
6定义一个事件激发时所调用的方法,再使用委托调用所关联的方法。
protected
void
FireEvent(
string
str)
{
Gate_Click handler
=
(Gate_Click)Events[clickEvent];
if
(handler
!=
null
)
handler(str);
}
7触发事件
private
void
invokeEvent(
object
sender,EventArgs e)
{
FireEvent(
"
str
"
);
}
好了。至此一个事件就已经完成了。但control.Events使用线性搜索所以量大时效率比较低,而且不保证线性安全。如果有需要可以自行编写Events类。
查看全文
相关阅读:
仿MSN小类别滑动效果
pku1674 Sorting by Swapping
pku1456 Supermarket
pku1083 Moving Tables
pku1125 Stockbroker Grapevine
pku2232 New StoneForfexCloth Game
如何低头前进
和两年前一样
股票亏了
早上选举了
原文地址:https://www.cnblogs.com/ziling8163/p/856682.html
最新文章
20110410某外企实习生招聘
【转】KMS error code 0x8007000d 解决方法
ubuntu下查看进程端口
Shell脚本学习笔记(七)sed和awk
Shell脚本学习笔记(六)转向与陷阱
关闭Image.FromFile(filePath)打开的文件
Shell脚本学习笔记(八)进程管理和工作控制
【转】BitTorrent协议详解
20110401某网购公司实习生招聘
Shell脚本学习笔记(三)算术运算
热门文章
Shell脚本学习笔记(九)文字和图形接口
使用VS2008进行WEB负载测试
Spring的核心机制依赖注入简介(转)
LoadRunner8测试Web站点
如何识别高级的验证码
MongoDB +ASP.NET MVC3实战一【MongoDB入门】
Loadrunner8 安装破解
nginx 实现Web应用程序的负载均衡
Comet之简单方案—Ajax Push Engine(APE)
MongoDB +ASP.NET MVC3实战二【ASP.NET MVC3中使用MongoDB】
Copyright © 2011-2022 走看看