暂停执行事件代码
暂停所有事件
Foxtable有一个逻辑型的系统变量,将其设置为False,将停止执行所有事件代码,将其设置为True,将恢复执行所有事件代码,就像一个事件“开关”。
例如希望向一个表中追加大量数据,并要求在追加数据的过程中,不要执行任何事件代码,可以如下编写代码:
SystemReady = False
'追加数据代码
SystemReady =
True
如果在执行上述代码的过程中发生错误退出,那么SystemReady将始终为False,系统进入锁死状态,不会执行任何事件代码,单击菜单按钮也不会有反应。
所以比较安全的编码方式为:
SystemReady = False
Try
'追加数据代码
Catch ex As Exception
MessageBox.Show("追加数据失败")
End Try
SystemReady =
True
暂停单个事件
如果要暂停单个事件的执行,那么SystemReady是无能为力的。
因为Foxtable并没有针对单个事件的“开关”,不过我们可以自行设计一个这样的“开关”,而且设计过程很简单,只需寥寥几行代码即可:
1、首先我们在全局代码中定义一个Public变量,假定变量名为pause:
Public pause
As
Boolean
2、然后在某事件的开始位置添加一段代码:
'判断是否执行事件:
If pause = True
Then
Return
End If
'原来事件代码
3、现在我们就可以为此事件设计开关了:
关闭此事件的代码为:
pause = True
开启此事件的代码为:
pause = False