我使用VB.NET中的事件实现了两个类之间的通信。现在我想记录所有发生的事件并在以后重新触发它们。以下是我的实现:
Class1:
Class1:
Public Event Button1Pressed(ByVal sender As Object)
Private Sub btnButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnButton.Click
RaiseEvent Button1Pressed(Me)
End Sub
Public Sub handleDisplayChanged(ByVal sender As System.Object, ByVal txt As String)
'... Some code
End Sub
第二类:
Public Event DisplayTextChangedEvent(ByVal sender As System.Object, ByVal text As String)
'In the constructor:
AddHandler Me.DisplayTextChangedEvent, AddressOf class1Instance.displayText
AddHandler class1Instance.Button1Pressed, AddressOf Me.buttonPressed
'Somewhere in the logic:
Public Sub buttonPressed(ByVal sender As Object)
'Compute text
'...
RaiseEvent DisplayTextChangedEvent(text)
End Sub
我可以为我想要记录的事件添加另一个处理程序,但是在处理程序中,我只能获得传递给事件的参数,而不能获取事件本身。另外一件我不知道如何解决的事情是,我无法从外部类触发事件。
有没有解决我的问题的好方法?