EventHandler表示将处理不包含事件数据的事件的方法
基本介绍
- 外文名:EventHandler
- 命名空间:::System
- 程式集::mscorlib
- 基于:具有事件委託
释义
表示将处理不包含事件数据的事件的方法。
命名空间: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。
备注
.NET Framework 中的事件模型基于具有事件委託,该委託将事件与事件处理程式连线。引发事件需要两个元素:
标识对事件提供回响的方法的委託。
保存事件数据的类。
委託是一个定义签名的类型,即方法的返回值类型和参数列表类型。可以使用委託类型来声明一个变数,该变数可以引用与委託签名相同的所有方法。
事件处理程式委託的标準签名定义一个没有返回值的方法,其第一个参数的类型为 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。