У меня есть глобальные переменные на уровне модуля с нижеуказанными типами COM-интерфейса.
Imports System.IO
Imports simpackcomslvLib
Imports simpackcompostLib
Module Globals
Public Srv As SpckCOMApp
Public Mdl As IScrModel
Public Post As PostComApp
Public Res As PostComProject
End Module
В других классах некоторые из моих процедур меняют значения своих объектов. Я хотел бы запустить некоторые из моих процедур, которые внесли некоторые изменения в графический интерфейс моего инструмента при изменении, например, значения Mdl.
Я пытался с помощью метода ниже, который сделал для параметра целочисленного типа, но у меня не получилось в моем случае, я думаю, из-за их объекта (я типа принадлежит COM-интерфейс.
Public Class myVar
Private mValue As Integer
Public Event VariableChanged(ByVal mvalue As Integer)
Public Property Variable() As Integer
Get
Variable = mValue
End Get
Set(ByVal value As Integer)
mValue = value
RaiseEvent VariableChanged(mValue)
End Set
End Property
End Class
Использование приведенного выше кода в примере
Public Class Form1
Private WithEvents test As New myVar
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
test.Variable = CInt(TextBox1.Text)
End Sub
Private Sub VariableChanged(ByVal NewValue As Integer) Handles test.VariableChanged
MessageBox.Show(NewValue)
End Sub
End Class
Есть ли в любом случае реализовать мои переменные ниже в модуле таким образом, также неправильно использовать на уровне модуля, если я переместить их в класс?
Module Globals
Public Srv As SpckCOMApp
Public Mdl As IScrModel
Public Post As PostComApp
Public Res As PostComProject
End Module