vb.net - 如何在 vb.net 中更改全局变量时引发事件
问题描述
我在模块级别具有以下 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 值更改时,我想运行一些我的程序,这些程序在我的工具的 GUI 上进行了一些更改。
我尝试了以下方法,该方法用于整数类型参数,但我的情况没有成功,我认为是因为它们的对象(我类型属于 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
解决方案
推荐阅读
- nginx - 如何将此配置从 Nginx 传递到 Apache2?
- r - R 对待 NA 的 TRUE 次方与 NA 的 FALSE 次方不同
- vb.net - 如何将多个文本框放在一个 If else 语句中
- javascript - 如何在 jQuery QueryBuilder 插件中删除逗号分隔字符串中的周围空格
- sql - 对数组进行排序并为数组中的每个元素创建一个 JSON 对象
- angular - 如何使用 ngx-cron-job?
- r - 使用 R 将前几行分组为正值,然后是另一组为负值,依此类推
- python-3.x - Python - 删除单词和点之间的多个空格
- c - 该程序删除多余空格有什么问题?
- printing - 为什么 Microsoft Edge 使用超大字体打印