我爱Aspx >> VB.Net >> Henry的VB.NET之旅(十四)—动态关联事件与处理程序Module Module1
Public Class CHenry
Public Event EventHR() @# 声明一个事件
Sub CauseSomeEvent()
RaiseEvent EventHR() @# 引发事件
End Sub
End Class
Dim obj As New CHenry()
Sub Obj_EventHR() @#在Handles之后声明事件
MsgBox("事件处理器捕捉到了事件.") @#处理事件.
End Sub
Sub Main()
AddHandler obj.EventHR, AddressOf Obj_EventHR
obj.CauseSomeEvent() @#调用对象去引发事件
End Sub
End Module
“看到有什么不同吗?”大李转过身来问我。
“主要有两个不同,首先是obj的定义不再用WithEvents来标识了,因此事件处理程序obj_EventHR()也就不能通过Handles关键字来声明事件,也就是说EventHR事件与事件处理程序没有用WithEvent-Handles进行关联;其次,是使用了AddHandle和Addressof……”说到这,我也没有词了,只能语焉不详。
“呵呵,我来帮你接着说。”大李拍了拍我的肩膀,接着说“先说Addressof吧,AddressOf 运算符创建的是一个指向指定的过程的过程委托。我们刚才说过委托相当于一个函数指针,那么AddressOf就是委托的操作符,通过它能得到委托的引用。”
见到我稍稍明白了,大李又接着说:“光看AddHandle能够将obj.EventHR事件与Obj_EventHR事件处理程序关联起来的作法,你肯定不了解我所说的动态关联好处在哪里。因为我没提到另一个方法RemoveHandler。它的使用方法和AddHandle是一样的,比如:
【我对这篇文章有话说?】
Henry的VB.NET之旅(十五)—动态..[05-20]
.net入门之VB篇:Visual Basic.N..[05-20]
用VB.NET和Excel排生产计划--企业..[05-20]
如何用VB.Net创建一个三层的数据..[05-20]
在IE中使用VS.net WinForm控件[05-20]
在vb.net中实现窗体上回车键代替..[05-20]
用VB.net制作一个小程序(2)[05-20]
用VB.net制作一个小程序(3)[05-20]
用新VB.NET 枚举提高效率[05-20]
在VB.NET中实现拖放操作[05-20]
Henry的VB.NET之旅(十五)—动态..[05-20]
.net入门之VB篇:Visual Basic.N..[05-20]
用VB.NET和Excel排生产计划--企业..[05-20]
如何用VB.Net创建一个三层的数据..[05-20]
在IE中使用VS.net WinForm控件[05-20]
向Visual Basic程序员介绍泛型(..[05-20]
向Visual Basic程序员介绍泛型(..[05-20]
在vb.net中实现窗体上回车键代替..[05-20]
用VB.net制作一个小程序(2)[05-20]
用VB.net制作一个小程序(3)[05-20]