EventHandler

王朝百科·作者佚名  2010-05-29  
宽屏版  字体: |||超大  

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

命名空间:System

程序集:mscorlib(在 mscorlib.dll 中)

语法

Visual Basic(声明)

<SerializableAttribute> _

<ComVisibleAttribute(True)> _

Public Delegate Sub EventHandler ( _

sender As Object, _

e As EventArgs _

)

Visual Basic(用法)

Dim instance As New EventHandler(AddressOf HandlerMethod)

C#

[SerializableAttribute]

[ComVisibleAttribute(true)]

public delegate void EventHandler (

Object sender,

EventArgs e

)

C++

[SerializableAttribute]

[ComVisibleAttribute(true)]

public delegate void EventHandler (

Object^ sender,

EventArgs^ e

)

J#

/** @delegate */

/** @attribute SerializableAttribute() */

/** @attribute ComVisibleAttribute(true) */

public delegate void EventHandler (

Object sender,

EventArgs e

)

JScript

JScript 支持使用委托,但不支持进行新的声明。

参数

sender

事件源。

e

不包含任何事件数据的 EventArgs。

备注

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

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

保存事件数据的类。

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

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

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

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

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

主题 位置

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

示例

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

Visual Basic 复制代码

Delegate Sub EventHandler(sender As Object, e As EventArgs)

Public Event NoDataEventHandler As EventHandler

C# 复制代码

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

public event EventHandler NoDataEventHandler;

C++ 复制代码

public:

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

event EventHandler^ NoDataEventHandler;

J# 复制代码

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

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有