Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共2 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:如何实时监控到变量发生了变化?

1楼
百事可乐 发表于:2025/4/5 9:01:00
foxtable中如何对全局变量实现监控?即当这个变量发生变化了,就执行某个操作比如点击btn1。因为变量可能会在很多场合下发生变化,所以如果按照通常的方法,每次发生变化时,手动编程,对它进行判断是否改变,一是可能会造成代码太冗余,二是可能有时因为粗心忘了进行变量变化的判断,而导致某些功能无法正常执行。有什么好办法吗?

网上找到一个办法:把这个变量放到表的字段中,然后利用datacolChanged来实现对它的监控,但这样的话,每次使用这个变量,都要进行一次定义,如: dim tid as integer = tables("varstable").rows(0)("tid"),失去了直接使用全局变量的原味,因本来就可以在任意场合直接使用这个全局代码 tid 的

那么,如何可以在全局代码中, 通过属性(Property)包装私有变量,在属性的 Set 部分触发事件或操作呢? 
2楼
百事可乐 发表于:2025/4/5 9:13:00
找到办法了,并验证可行:

在全局代码中定义一个变量:
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
共2 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .01953 s, 2 queries.