foxtable中如何对全局变量实现监控?即当这个变量发生变化了,就执行某个操作比如点击btn1。因为变量可能会在很多场合下发生变化,所以如果按照通常的方法,每次发生变化时,手动编程,对它进行判断是否改变,一是可能会造成代码太冗余,二是可能有时因为粗心忘了进行变量变化的判断,而导致某些功能无法正常执行。有什么好办法吗?
网上找到一个办法:把这个变量放到表的字段中,然后利用datacolChanged来实现对它的监控,但这样的话,每次使用这个变量,都要进行一次定义,如: dim tid as integer = tables("varstable").rows(0)("tid"),失去了直接使用全局变量的原味,因本来就可以在任意场合直接使用这个全局代码 tid 的
那么,如何可以在全局代码中, 通过属性(Property)包装私有变量,在属性的 Set 部分触发事件或操作呢?
找到办法了,并验证可行:
在全局代码中定义一个变量:
Private _myVar As Object ' 私有变量
' 定义属性
Public Property myVar() As Object
Get
Return _myVar
End Get
Set(value As Object)
If Not Equals(_myVar, value) Then ' 检查值是否变化
_myVar = value
' 变量变化时触发操作(例如点击btn1)
' btn1_Click() ' 直接调用按钮事件
MessageBox.Show("变量发生了变化了:" & _myVar)
' 或者触发自定义事件
End If
End Set
End Property