EventHandler 委托

表示将处理不包含事件数据的事件的方法。

**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Delegate Sub EventHandler ( _
    sender As Object, _
    e As EventArgs _
)
用法
Dim instance As New EventHandler(AddressOf HandlerMethod)
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public delegate void EventHandler (
    Object sender,
    EventArgs e
)
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public delegate void EventHandler (
    Object^ sender, 
    EventArgs^ e
)
/** @delegate */
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public delegate void EventHandler (
    Object sender, 
    EventArgs e
)
JScript 支持使用委托,但不支持进行新的声明。

参数

  • sender
    事件源。
  • e
    不包含任何事件数据的 EventArgs

备注

.NET Framework 中的事件模型基于具有事件委托,该委托将事件与事件处理程序连接。引发事件需要两个元素:

  • 标识对事件提供响应的方法的委托。

  • 保存事件数据的类。

委托是一个定义签名的类型,即方法的返回值类型和参数列表类型。可以使用委托类型来声明一个变量,该变量可以引用与委托签名相同的所有方法。

事件处理程序委托的标准签名定义一个没有返回值的方法,其第一个参数的类型为 Object,它引用引发事件的实例,第二个参数从 EventArgs 类型派生,它保存事件数据。如果事件不生成事件数据,则第二个参数只是 EventArgs 的一个实例。否则,第二个参数为从 EventArgs 派生的自定义类型,提供保存事件数据所需的全部字段或属性。

EventHandler 是一个预定义的委托,专用于表示不生成数据的事件的事件处理程序方法。如果事件生成数据,则必须提供自己的自定义事件数据类型,并且必须要么创建一个委托,其中第二个参数的类型为自定义类型,要么使用泛型 EventHandler 委托类并用自定义类型替代泛型类型参数。

若要将事件与处理事件的方法关联,请向事件添加委托的实例。除非移除了该委托,否则每当发生该事件时就调用事件处理程序。

有关事件处理程序委托的更多信息,请参见 事件和委托

主题 位置
如何:在 ASP.NET 网页中对事件处理程序进行运行时动态绑定 在 Visual Studio 中生成 ASP .NET Web 应用程序
如何:在 ASP.NET 网页中对事件处理程序进行运行时动态绑定 在 Visual Studio 中生成 ASP .NET Web 应用程序
如何:在 ASP.NET 网页中对事件处理程序进行运行时动态绑定 生成 ASP .NET Web 应用程序

示例

下面的代码示例演示不使用事件数据的事件处理程序委托的声明。EventHandler 类是事件委托的类型,sender 是引发事件的对象,而 e 则是不包含任何数据的事件数据对象。示例的第二行代码为类中没有数据的事件定义事件成员。

Delegate Sub EventHandler(sender As Object, e As EventArgs)
   
Public Event NoDataEventHandler As EventHandler
public delegate void EventHandler(Object sender, EventArgs e);
public event EventHandler NoDataEventHandler;
public:
   delegate void EventHandler( Object^ sender, EventArgs^ e );

   event EventHandler^ NoDataEventHandler;
public delegate void EventHandler(Object sender, EventArgs e);

public EventHandler noDataEventHandler = null;

/** @event 
 */
public void add_NoDataEventHandler(EventHandler p)
{
    noDataEventHandler =(EventHandler)System.Delegate.
        Combine(noDataEventHandler, p);
}//add_NoDataEventHandler

/** @event 
 */
public void remove_NoDataEventHandler(EventHandler p)
{
    noDataEventHandler =(EventHandler)System.Delegate.
        Remove(noDataEventHandler, p);
}// remove_NoDataEventHandler

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

System 命名空间
EventHandler
EventArgs 类
Delegate 类

其他资源

事件和委托