У меня есть класс как ниже, который содержит мои глобальные переменные в качестве свойства. Я сделал этот «ModelFullPath» из переменной в свойство, потому что я не знаю, как вызывать события с изменениями переменной (если у вас есть больше логических предложений, я буду признателен).
Public Class Globals
Private Shared _modelfullpath As String = String.Empty
Public Shared Event ModelPathChanged(ByVal _modelfullpath As String)
Public Shared Property ModelFullPath() As String
Get
Return _modelfullpath
End Get
Set(ByVal value As String)
_modelfullpath = value
RaiseEvent ModelPathChanged(_modelfullpath)
End Set
End Property
Public Shared Sub TestIt() Handles MyClass.ModelPathChanged
' Some codes in here
MessageBox.Show("It Changed")
End Sub
End Class
В моем другом классе у меня есть «Button2», которая получает текстовое поле строкового значения и устанавливает свойство ModelFullPath моего Globals в соответствии со значением textbox1.Text. С другой стороны, Button1 записывает свойство Globals.ModelFullPath в значение label1.text.
Здесь я хотел бы поместить событие, если ModelFullPath изменен, я хотел бы сделать некоторые действия, такие как изменение цвета фона инструмента и т. Д. В настоящее время я установил для него показ «Это изменилось» с помощью окна сообщений. Но главная проблема в том, что я не могу справиться с этим из другого класса, как показано ниже.
Public Class MainTool
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label1.Text = Globals.ModelFullPath
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Globals.ModelFullPath = TextBox1.Text
End Sub
Private Sub VariableChanged() Handles Globals.VariableChanged
Globals.TestIt()
End Sub
End Class
Как справиться с Globals.VariableChanged
событием? Потому что он не распознает это событие.