控件中的Events个人理解。

首先,了解一下与事件和委托有关的几个类和属性:
Delegate, MulticastDelegate, EventHandler, EventHandlerList, EventHandlerList.ListEntry, Control, Component

Control的Events属性是由System.ComponentModel.Component 继承而来,它是EventHandlerList的实例.

EventHandlerList类有三个重要的方法:

None.gif      public void AddHandler(object key, Delegate value);
None.gif      
public void RemoveHandler(object key, Delegate value);
None.gif      
private ListEntry Find(object key);

示例:我们要为当前控件添加一个点击事件(Click).
第一步:创建一个静态只读的属性
public static readonly object ClickEvent=new object();  //它是以后事件查找委托的键(key),
第二步:注册事件
public event EventHandler Click
{
   add
   {
       base.Events.AddHandler(ClickEvent,value);
   }
   remove
  { 
    base.Events.RemoveHandler(ClickEvent,value);
   }
}
----
以下是Events的定义:
None.gifprivate EventHandlerList events;
None.gif
protected EventHandlerList Events
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif      
get
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif            
if (this.events == null)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                  
this.events = new EventHandlerList();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
return this.events;
ExpandedSubBlockEnd.gif      }

ExpandedBlockEnd.gif}

None.gif

转载于:https://www.cnblogs.com/McJeremy/archive/2008/06/12/1218263.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ManualResetEvent用法

ManualResetEvent 允许线程通过发信号互相通信。通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。 public static ManualResetEvent mre new ManualResetEvent(false); ManualResetEvent建立时是把false作为start的初始状态,这个类用于通知另…

JavaScript: Cookie 详解、实例与应用

Cookie(也)是JavaScript中的一种机制,可以实现严格的跨页面全局变量的要求。 Cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此&#xff…

苹果电脑可以装windows系统吗_不只是桌面,这个 Windows 皮肤可以帮你全局美化 Windows 系统

追求个性化是个永恒不变的需求,而在主题这件事情上,和 Windows XP 那个百花齐放的时代相比,我们在 Windows 10 下能够享受到的官方主题大多都只是换换壁纸、改改配色这么简单。而在千篇一律的官方主题之外,美化社区的 Windows 10 …

SQL Server 2005: 存储过程签名

SQLSERVER 2005提供的对存储过程签名(signature)功能是我最喜欢的。如果我们要编写一个存储过程,执行该存储过程里的代码需要权限P,并且我们想要用户Alice可以执行这个存储过程,但是我们不想将权限P直接赋予给用户Alice, 我们可以用证书(certificate)对这…

手机能上wifi电脑不行_锦囊在此(电脑手机如何配置使用WIFI)

1.路由器接入电源(以下是以TP-LINK为例,其他路由器大同小异,重要是在于关闭DHCP服务器选项)2.打开电脑WIFI连接路由器(找对路由器名称,见路由器底标)(建议不要接入网线,配置好再接入网线)3.打开浏览器输入路由器后台网址(见路由器…

8位可控加减法电路设计_100以内数的认知也加减法详解

一、100 以内数的认识1、10个十是100,读作一百。100 是由10个十或100个一组成,它是一个三位数。2、数数时,可以一个一个的数,也可以二个二个的数,五个五个的数,十个十个的数。3、从右边起,第一位是个位,第二位是十位,第三位是百位。4、读数和写数,都从高位起。当计数器上个位或…

如何在电脑上截屏_如何在电脑上截图?教你6种常用的截图方法,总有你不知道的...

无论是在学习上还是在工作中,我们都经常会用到电脑,特别是在工作中,每天都是与电脑相伴,遇到重要的文字信息或者好看的图片,都会想尽办法截取下来,所以今天就教大家几种电脑截图的方法。1、截图工具这个截图…

ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

第三章 为控件添加事件 好了,我们之前以前开发一个控件。而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件。 系列文章链接:ASP.NET自定义控件组件开发 第一章 待续ASP.NET自定义控件组件开发 第一章 …

pioneer dvr-xd50 固件_闲的蛋疼的验证:索尼 SONY WH1000XM3固件版本差异

坊间一直流传,索尼WH-1000XM3的新固件版本降噪性能要比老的更差,即最早期的2.x.x版本的降噪性能要比目前的4.x.x更好。这也让不少WH-1000XM3的用户一直停留在2.x版本不升级,甚至动用比较麻烦的方法去对耳机做固件降级。出于闲的蛋疼的原因&am…

python接口测试_Python接口自动化测试(一)

本节开始,开始介绍python的接口自动化测试,首先需要搭建python开发环境,到https://www.python.org/下载python版本直接安装就以了,建议下载python2.7.11版本,当然,也是可以下载python最新版本。 接口测试是…

刷recovery工具apk_红米note4X刷lineage,不喜欢miui10广告臃肿的可以试一试

经常在miui和各个类原生安卓系统间换来换去,不过miui10现在是越来越垃圾了,广告、耗电、臃肿,我现在已经逐步抛弃miui了!小白可以看我的帖子做个参考,刷机其实是特别简单的是,只要一步步来,总会…

干涉测量技术的应用_技术分享 | 石化行业测量仪表应用在线答疑

众所周知,在化工和石化这类流程行业当中,稳定性和持续性是至关重要的生产“命脉”,对于生产过程中使用的测量仪表有着极其严格的要求。不仅所有测量仪表都必须满足严苛的国际标准,如PED和ATEX,压力、温度及液位等电子和…

WCF学习(五)数据契约之已知类型

准备技术: 1.C#基础知识 2.了解WCF基础知识 在正常的c#开发中我们是允许用子类去替换基类的,这也是所谓的替换原则。但是我们在WCF中确不能用数据契约的子类来替换父类的,因为这中间存在一个序列化的问题。举个例子: 我们有数据契…

win10必须禁用的服务_7寸屏的迷你电脑,就算是8GB运行内存,也必须关闭的系统选项...

现在的电脑,基本上都安装的是Win10系统了,7寸屏的迷你笔记本电脑GPD Pocket 2琥珀黑版也不例外,GPD Pocket 2采用的是赛扬双核3965y处理器,8G运行内存,处理办公应用可以说是游刃有余,但是Win10系统有一些选…

iTunes只能装C盘吗_电脑技巧分享:安装win10系统时系统盘C盘分区多大空间适合?...

我们在使用电脑时为了对电脑文件的方便管理,往往会对电脑进行分区,比如C,D,E,F盘等,其中C盘默认为系统盘,用于存储操作系统的重要文件,而C盘的分区大小也是许多朋友在安装操作系统时…

上海梵科信息科技有限公司

1. a5, b(a)(a)(a), printf("%d",b); 答案:19 2. 表students,有id, classid, name, score。 班级为4的所有学生? 答案:select * from students where classid4 每个班级的学生总数? 答案:select …

python36安装numpy_安装numpy

为了运行机器学习书上的实例,安装numpy.照着网上教程安装的,网上教程 1)下载numpy包 自己的是python3.5, 64位操作系统,所以选择numpy-1.11.2mkl-cp35-cp35m-win-amd64.whl 2)安装numpy 将下载的包拷贝到python安装目录…

WCF Testing Tool(转)

原文:http://jayce.clearviewtickets.info/wcftestingtool.html best video: wcf testing tool IIS7 Admin Pack Offers Built In Performance Analysis Reports Are you web developer building high traffic web site? Are you performance engineer that lives and breath…

python制作简单动画_如何使用python制作简单的动画?

Python真的是无穷的好用,涉及内容非常广泛,比如接下来给大家介绍的制作动画,就可以利用python实现,相信小伙伴们听到这些内容肯定是非常感兴趣的,至于怎么去实现?大家想不想了解呢?下面小编就给…

clickhouse语句_篇四|ClickHouse的可视化界面与集群状态监控

介绍 tabix支持通过浏览器直接连接 ClickHouse,不需要安装其他软件,就可以访问ClickHouse,具有以下特点:⾼亮语法的编辑器。⾃动命令补全。查询命令执⾏的图形分析⼯具。配⾊⽅案选项。除此之外,还可以使用DBeaver连接…