在类属性更改上调用sub?

时间:2015-11-11 20:41:03

标签: vb.net class events properties event-handling

我有一个基于TreeNode的自定义类,它有一个名为status的Enum属性,setup如下所示。

Public _staus As enumStatus

Public Enum enumStatus
   None
   Yes
   No
End Enum

基本上当我改变这个属性时,我想调用一个只改变项目文本颜色的子例程 - 这个子包含在类中,只是一个更新Me.ForeColor属性的select case语句。

如果我对myClass.ChangeColourBasedOnStatus进行分类,这是正常的,但是如何在更改属性时自动执行此操作。

我已经尝试过查看事件处理程序,但我无法找到我理解并可以开始工作的解释。

非常感谢任何建议。 :)

1 个答案:

答案 0 :(得分:0)

将该字段设为私有,并添加一个Property以访问它。在下面的示例中,我假设您正在使用控件中的文本,但您可以修改它以使用枚举或其他类型。

Private _staus As enumStatus

Public Enum enumStatus
    None
    Yes
    No
End Enum

Public Property Status As enumStatus
    Get
        Return _staus
    End Get
    Set(value As enumStatus)
        _staus = value
        ChangeColor(TextBox1.Text)
    End Set
End Property

Private Sub ChangeColor(SomeText As String)
    Select Case SomeText
        Case "" : Me.ForeColor = Color.Black
        Case "Stop" : Me.ForeColor = Color.Red
        Case "Go" : Me.ForeColor = Color.Green
    End Select
End Sub