引用相同对象怎么触发指定的引用对象的事件,其它的忽略
事件类中的触发函数()的语句RaiseEvent 触发事件(),正常情况下
会依次触发,对象a和对象b和对象c的"触发事件类_触发事件函数"
如果我想只触发一个对象b的"触发事件类_触发事件函数",对象a和对象c
的忽略,应该怎么做
Class 事件类
Event 触发事件()
sub 触发函数()
RaiseEvent 触发事件()
end sub
End Class
Public Class 主窗口
Dim WithEvents 触发事件类 As New 事件类
Dim 对象a As New a(触发事件类)
Dim 对象b As New b(触发事件类)
Dim 对象c As New c(触发事件类)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Class a
Dim WithEvents 触发事件类 As 事件类
Sub New(ByRef 对象 As Object)
触发事件类 = 对象
End Sub
'RaiseEvent 触发事件 会自动进入
Private Sub 触发事件类_触发事件() Handles 触发事件类.触发事件
End Sub
End Class
Class b
Dim WithEvents 触发事件类 As 事件类
Sub New(ByRef 对象 As Object)
触发事件类 = 对象
End Sub
'RaiseEvent 触发事件 会自动进入
Private Sub 触发事件类_触发事件() Handles 触发事件类.触发事件
End Sub
End Class
Class c
Dim WithEvents 触发事件类 As 事件类
Sub New(ByRef 对象 As Object)
触发事件类 = 对象
End Sub
'RaiseEvent 触发事件 会自动进入
Private Sub 触发事件类_触发事件() Handles 触发事件类.触发事件
End Sub
End Class 对象 事件
------解决方案--------------------
c#的你耐心点是能看懂的。
设计上让我写vb.net,我也感到很生疏呢。随便举个例子:
Public Class MyTestType
Public Event Hi As EventHandler
Sub test()
If Not (HiEvent Is Nothing) Then
For Each v As EventHandler In HiEvent.GetInvocationList()
If v.Method.DeclaringType = GetType(b) Then
v(Me, EventArgs.Empty)
End If
Next
End If
End Sub
End Class