【发布时间】:2009-10-26 12:22:20
【问题描述】:
我发现构造函数中引发的事件(直接间接)无法在类之外处理。为了证明这是否是实际问题,我编写了一个简单的示例应用程序。
参加活动的班级:
Namespace Utils
Public Class A
Public Event Test()
Public Sub New()
CallTest()
End Sub
Public Sub MakeACall()
CallTest()
End Sub
Private Sub CallTest()
RaiseEvent Test()
End Sub
End Class
End Namespace
主窗体(正确处理事件):
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
m_A.MakeACall()
End Sub
Private Sub HandleTest() Handles m_A.Test
MsgBox("ta-dah!")
End Sub
Protected WithEvents m_A As New Utils.A()
End Class
主窗体(未正确处理事件):
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
m_A = New Utils.A()
End Sub
Private Sub HandleTest() Handles m_A.Test
MsgBox("ta-dah!")
End Sub
Protected WithEvents m_A As Utils.A
End Class
写完这些文章后,这种行为的原因变得很明显,但也许有办法省略它?
【问题讨论】:
标签: vb.net events constructor event-handling