事件研究(一)

 

事件定义

        //
        // 摘要:
        // 在单击控件时发生。
        [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的开发,经过思考联系,应该能明白,事件大概运行思路。

 

posted on   荆棘人  阅读(197)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2016-12-21 什么是publickeytoken及publickeytoken的作用

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示