zoukankan      html  css  js  c++  java
  • 如何理解和实现c#事件

    网上有很多关于事件是如何实现的,但看来看去都不是很明了。

    有时候很多网站都转载相同的内容,千篇一律,所以自己打算好好研究一下这东东究竟如何实现。

    Step 1 什么是事件

    究竟什么是事件呢?想到事件,就让我想到911. 记得那段事件大家都在谈911事件。什么是911事件呢?就是飞机撞大楼这个动作导致了911事件的产生。但在c#中又如何理解呢。其实所谓事件,就是由某个对象发出的消息,这个消息标志着某个特定的行为发生了,或者某个特定的条件成立了。比如用户点击了鼠标,这一单击就会引起Windows给按钮消息处理程序发送一个消息,这就是OnClick事件。那个触发(raise)事件的对象称为事件的发送者(event sender),捕获并响应事件的对象称为事件的接收者(event receiver)。在winform里面,这个发送者就是我们单击的那个按钮,响应者或者叫接收者就是winform窗体。

    下面就用winform和button来举例子

    Step 2 定义button类

    Button

     Step 3定义参数类

    NewEventArgs

    Step 4 定义WinForm类

    WinForm

    Step 5 运行测试

    Test

     Step 6 小结

    测试结果:

    button

    first button

    button

    second button

    现在觉得event其实就这样,关键是理解委托的概念,这里的button1.Click += new OnClickEventHandler(btnClick);和button2.Click += new OnClickEventHandler(btnClick);其实就是委托实例而已。其次要了解事件sender对象和receiver之间的关系。

    最后希望能和大家共同探讨技术问题。

    参考:

    http://www.csharphelp.com/archives/archive253.html

  • 相关阅读:
    【Java】CGLIB动态代理
    【Java】JDK动态代理
    Css 选择器优先级整理_Css 选择器优先级详解
    JavaScript 操作浏览器全屏整理_Js 控制浏览器全屏处理
    c# 调用浏览器打开网址并全屏_C#打开本地浏览器
    Css 文字垂直方向居中整理
    JavaScript Promise 对象使用讲解
    ArgumentException: 'gb2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
    .Net Excel操作之NPOI,操作Excel单元格富文本,单元格颜色处理
    iis 403禁止访问
  • 原文地址:https://www.cnblogs.com/matthew/p/1270671.html
Copyright © 2011-2022 走看看