VB.Net 中 WithEvents、AddHandler
Public Class Form1
Dim WithEvents cls1 As New ClassTest() 'WithEvents方式
Dim cls2 As New ClassTest() 'AddHandler方式
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cls1.Test() 'WithEvents方式
AddHandler cls2.GetValue, AddressOf cls2GetValue 'AddHandler方式
cls2.Test()
Me.Close()
End Sub
Private Sub cls1_GetVale(ByVal str As String) Handles cls1.GetValue 'WithEvents方式
MsgBox("cls1 " & str)
End Sub
Private Sub cls2GetValue(ByVal str As String) 'AddHandler方式
MsgBox("cls2 " & str)
End Sub
End Class
Public Class ClassTest
Public Event GetValue(ByVal str As String)
Public Sub Test()
RaiseEvent GetValue("事件例子")
End Sub
End Class
Dim WithEvents cls1 As New ClassTest() 'WithEvents方式
Dim cls2 As New ClassTest() 'AddHandler方式
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cls1.Test() 'WithEvents方式
AddHandler cls2.GetValue, AddressOf cls2GetValue 'AddHandler方式
cls2.Test()
Me.Close()
End Sub
Private Sub cls1_GetVale(ByVal str As String) Handles cls1.GetValue 'WithEvents方式
MsgBox("cls1 " & str)
End Sub
Private Sub cls2GetValue(ByVal str As String) 'AddHandler方式
MsgBox("cls2 " & str)
End Sub
End Class
Public Class ClassTest
Public Event GetValue(ByVal str As String)
Public Sub Test()
RaiseEvent GetValue("事件例子")
End Sub
End Class
Result:
cls1 事件例子
cls2 事件例子