zoukankan      html  css  js  c++  java
  • 控件中的Events个人理解。

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

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

    EventHandlerList类有三个重要的方法:

          public void AddHandler(object key, Delegate value);
          
    public void RemoveHandler(object key, Delegate value);
          
    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的定义:
    private EventHandlerList events;
    protected EventHandlerList Events
    {
          
    get
          
    {
                
    if (this.events == null)
                
    {
                      
    this.events = new EventHandlerList();
                }

                
    return this.events;
          }

    }

  • 相关阅读:
    【02】SASS与SCSS
    【02】sass更新的方法
    10.19 dig:域名查询工具
    10.7 netstat:查看网络状态
    10.6 ip:网络配置工具
    S11 Linux系统管理命令
    11.19 rpm:RPM包管理器
    11.20 yum:自动化RPM包管理工具
    11.2 uptime:显示系统的运行时间及负载
    11.3 free:查看系统内存信息
  • 原文地址:https://www.cnblogs.com/McJeremy/p/1218263.html
Copyright © 2011-2022 走看看