在 class 属性 更改时调用 sub?
Call sub on class property change?
我有一个基于 TreeNode 的自定义 class,上面有一个名为 status 的枚举 属性,设置如下所示。
Public _staus As enumStatus
Public Enum enumStatus
None
Yes
No
End Enum
基本上,当我更改此 属性 时,我想调用一个仅更改项目文本颜色的子例程 - 此子例程包含在 class 中,只是一个 select case 语句更新 Me.ForeColor 属性。
如果我 class myClass.ChangeColourBasedOnStatus 可以正常工作,但是当 属性 改变时如何让它自动执行此操作。
我试过查看事件处理程序,但找不到我理解并可以开始工作的解释。
非常感谢任何建议。 :)
将字段设为私有并添加 属性 以访问它。在下面的示例中,我假设您正在使用控件中的文本,但您可以修改它以使用枚举或其他类型。
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
我有一个基于 TreeNode 的自定义 class,上面有一个名为 status 的枚举 属性,设置如下所示。
Public _staus As enumStatus
Public Enum enumStatus
None
Yes
No
End Enum
基本上,当我更改此 属性 时,我想调用一个仅更改项目文本颜色的子例程 - 此子例程包含在 class 中,只是一个 select case 语句更新 Me.ForeColor 属性。
如果我 class myClass.ChangeColourBasedOnStatus 可以正常工作,但是当 属性 改变时如何让它自动执行此操作。
我试过查看事件处理程序,但找不到我理解并可以开始工作的解释。
非常感谢任何建议。 :)
将字段设为私有并添加 属性 以访问它。在下面的示例中,我假设您正在使用控件中的文本,但您可以修改它以使用枚举或其他类型。
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