Vb.Net 事件動態注冊本質上與委派的本質相同。
具體過程:
1 申明一個公有的委派方法 格式:Public Delegate Sub 自定義過程名xx (參數表)
2 申明一個事件,其類型是1所申明的方法
格式:Public Event 事件名yy As自定義過程名xx
3 另定義一個對事件處理的過程
語法格式:
Dim Sub 事件處理過程名zz(參數表)
4 動態向該事件注冊
語法格式: AddHandler 事件名yy, 事件處理過程名zz的入口地址
5 產生事件
語法格式
RaiseEvent事件名yy(實參表)
注意:動態注銷事件的過程為:removehandler
語法格式: RemoveHandler事件名yy, 事件處理過程名zz的入口地址
''以下是事件申明使用代碼
Public Class class1
Delegate Sub aaHndler(ByVal name As String)
Public Event evt As aaHndler
Private name As String = "aaa"
Sub work(ByVal name As String)
MsgBox(name)
End Sub
Public Sub New()
End Sub
Public Sub dd()
AddHandler Me.evt, AddressOf work
RaiseEvent evt(Me.name)
End Sub
End Class
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim obj As class1 = New class1()
obj.dd()
End Sub