• 事件研究(一)


    事件定义

            //
            // 摘要:
            // 在单击控件时发生。
            [SRCategory("CatAction")]
            [SRDescription("ControlOnClickDescr")]
            public event EventHandler Click;

    事件订阅

    this.button1.Click += new System.EventHandler(this.button1_Click);

    事件委托类型

        // 摘要:
        // 表示将处理不包含事件数据的事件的方法。
        //
        // 参数:
        // sender:
        // 事件源。
        //
        // e:
        // 不包含任何事件数据的 System.EventArgs。
        [Serializable]
        [ComVisible(true)]
        public delegate void EventHandler(object sender, EventArgs e);

    委托就等效于一个类型安全的函数指针或一个回调。虽然委托具有许多其他的用途,但这里只讨论委托的事件处理功能。

    只有当事件生成事件数据时才需要自定义事件委托。 许多事件,包括一些用户界面事件(例如鼠标单击)在内,都不生成事件数据。 在这种情况下,类库中为无数据事件提供的事件委托 System.EventHandler 便足够了。

    事件委托是多路广播的,这意味着它们可以对多个事件处理方法进行引用。 有关详细信息,请参见 Delegate。 委托考虑了事件处理中的灵活性和精确控制。 通过维护事件的已注册事件处理程序列表,委托为引发事件的类担当事件发送器的角色。

    有关使用委托在您的组件或控件中提供事件功能的详细信息,请参见引发事件

        该文摘抄自msdn,定义事件的同时,可以自定义事件委托类型。假如给事件委托绑定了事件处理方法,当事件发生时事件处理方法的内容会被执行。

        例子使用的winform中的按钮事件代码。如果熟悉winform的开发,经过思考联系,应该能明白,事件大概运行思路。

  • 相关阅读:
    redis 配置文件说明
    Python 详解命令行解析
    Python 的字符编码
    pt-online-schema-change utf8mb4 错误解决方法【转】
    [MySQL 5.6] Innodb新特性之export/import 表文件
    查找数据库大小和表大小
    MySQL 增删列
    使用MySQL Shell创建MGR
    Qingcloud_MySQL Plus(Xenon) 高可用搭建实验
    MySQL事务提交流程
  • 原文地址:https://www.cnblogs.com/Tpf386/p/8081906.html
Copyright © 2020-2023  润新知