暂停执行事件代码

暂停所有事件

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


本页地址:http://www.foxtable.com/webhelp/topics/2218.htm