来自其他班级的活动

时间:2014-12-16 12:35:51

标签: vb.net

我必须"赶上"来自另一个班级的活动,但我不能。 项目包含两种形式:Form1和Form2以及类参数。表单1包含一个按钮,它必须更改类道具中的属性值。 Form2必须知道道具何时引发事件。

情况如下:

    ''Form1 code
Public Class Form1
Dim p As New params

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Form2.Show()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    p.demo = "mytry"
End Sub
End Class 

    ''Form2 code
Public Class Form2
Private WithEvents p As params

Private Sub pChanged(ByVal propertyName As String) Handles p.PropChanged
    MessageBox.Show(propertyName)
End Sub
End Class

    ''Class params code
Public Class params
Public Event PropChanged(ByVal propName As String)
Private _demo As String

Public Property demo() As String
    Get
        Return _demo
    End Get
    Set(ByVal value As String)
        _demo = value
        RaiseEvent PropChanged("demo")
    End Set
End Property
End Class

问题是Form2中的子pChanged永远不会被触发,并且当属性" demo"引发事件PropChanged。

如何使这个工作?

1 个答案:

答案 0 :(得分:2)

如果您更改了params中的属性,则有两个{​​{1}}个变量,并且您在Form2处理错误。您可以在Form1中处理该事件并再次将其提升以在Form2中处理该事件。

一个人在这里:

Form1

和一个

Public Class Form1
Dim p As New params

请注意,如果您想在那里处理活动,还必须在Public Class Form2 Private WithEvents p As params 中使用WithEvents p As New params