【发布时间】:2012-03-13 14:54:01
【问题描述】:
我通过使用 VB.NET 中的事件来实现两个类之间的通信。现在我想存储(记录)所有发生的事件,并在以后再次重新引发(重播)它们。
这是我已经拥有的:
第一类:
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
第 2 类:
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
我可以为要记录的事件添加另一个处理程序,但是在处理程序中我只得到传递给事件的参数,而不是事件本身。我不知道如何解决的另一件事是,我无法从外部类引发事件。
我的问题有什么好的解决方案吗?
【问题讨论】: