VB - 正确地从另一个类中提升事件

时间:2015-11-03 18:05:55

标签: vb.net events

我知道有很多关于上述内容的信息,但我不知道如何正确地做到这一点,所以我认为使用现实生活中的问题可能有助于为我和其他人点击它。

所以在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)

基本上在课堂上传球在我眼里看起来很荒谬,所以使用这个例子有一个“正确”的方法吗?

由于

1 个答案:

答案 0 :(得分:1)

似乎你正在颠倒这些角色。在这种情况下,引发事件的类不应该知道谁处理事件。实例化newClassDialog以为被调用类引发的事件添加事件处理程序是类的责任

Dim UI As New newClassDialog(Me) 
AddHandler UI.textchanged, AddressOf Me.textChangedMethod