我知道有很多关于上述内容的信息,但我不知道如何正确地做到这一点,所以我认为使用现实生活中的问题可能有助于为我和其他人点击它。
所以在A类中我定义了一个事件方法
Public Sub textChangedMethod(ByVal textedChanged As Boolean)
' do some code on properties of this class only
End Sub
我需要做的是我需要一些其他类来提出这个方法,
我有一个概念,但它完全错了。
目前我将A类的实例传递给另一个类,以便它可以引用该事件(这一定是错误的)
Dim UI As New newClassDialog(Me) 'class A
在这个新课程中,我有事件处理程序
Public Event textChanged(ByVal textedChanged As Boolean)
因此,在新类的构造函数中,我现在可以添加处理程序
Public Sub New(ByRef classA As Class A)
' This call is required by the designer.
InitializeComponent()
AddHandler textChanged, AddressOf classA.textChangedMethod
End Sub
现在我当然可以举起这样的活动
RaiseEvent textChanged(True)
基本上在课堂上传球在我眼里看起来很荒谬,所以使用这个例子有一个“正确”的方法吗?
由于
答案 0 :(得分:1)
似乎你正在颠倒这些角色。在这种情况下,引发事件的类不应该知道谁处理事件。实例化newClassDialog以为被调用类引发的事件添加事件处理程序是类的责任
Dim UI As New newClassDialog(Me)
AddHandler UI.textchanged, AddressOf Me.textChangedMethod