事件本身的描述被完全封装了吗?比如为什么是鼠标按下,为什么又是RadioButton被选中?
 那C#能不能开发自定义的事件呢?比如我想鼠标在一个时间内连按3下,这样的东西C#能做吗?C++可能可以吧

解决方案 »

  1.   

    System.EventArgs是所有事件数据的基类,但不是事件的基类。事件没有基类。当然你要说那是System.MulticastDelegate也说得过去,但没有什么用。所有事件的Handler的类型都直接从MulticastDelegate继承,它们之间没有继承关系。自定义事件当然可以,但是Windows没有“三击”的消息,所以编写起来比较麻烦。
      

  2.   

    System.EventArgs是所有事件的基类,所有事件继承自此,并封装自己的事件数据
    你也能开发自定义事件。为什么是鼠标按下应该是操作系统定义的事件,你的Form订阅了操作系统的MouseDown事件,(或者说操作系统 or CLR调用了Form提供的MouseDown EventHandler)然后根据鼠标按下的位置,又引发了RadioButton的OnClick事件,
    调用RadioButton提供的EventHandler,于是你的RadioButton就显示为被选中(我的理解)自定义事件MSDN里面介绍得很详细
    查"引发事件"
      

  3.   

    还是楼上说得准确,事件功能是由三个互相联系的元素提供的:提供事件数据的类、事件委托和引发事件的类。
    System.EventArgs就是所有提供事件数据的类的基类
      

  4.   

    我想我上面的问题更准确的说应该是如何定义一个消息才对,事件由 委托将这个消息连接到可以给出其响应的具体方法的那么也就是说,定义消息,如果是自定义消息,这些消息依据特定的软硬件而产生,对 鼠标按下3下的消息可以息定义吗?呵呵,还是 Ninputer(装配脑袋) 说的方向 正确,thanks