老师好,
Foxtable高级开发版,另本人不是新手。
遇到两个奇怪的事件,有时候触发有时候不触发。程序太大且链接sql数据库,无法全部上传。
1. 窗口的beforeclose事件,偶尔e.cancel=true无法拦截关闭动作。
代码如下:
'*****************************************************
'判断是否存在修改,询问是否取消所有未保存的修改
If e.closemode=1 Then Return '如果是通过代码关闭窗口的话,如cancel
Dim kr As Row=Tables("Customers").current
If kr Is Nothing Then Return
Dim r As DataRow = kr.DataRow
Dim Havechanges As Boolean=False
If r.Rowstate<> DataRowState.unchanged Then HaveChanges=True
If Havechanges=False Then Return '直接退出窗口
e.cancel=True
messagebox.show("You have made changes. You must Save or Cancel the changes first.", "Closing", MessageBoxButtons.ok, messageboxicon.warning)
'*****************************************************
我十次中有三四次会看到messagebox的警告,但是窗口还是被关闭;大多数时候窗口关闭动作还是会被拦截。
这种偶发性的问题令人摸不着头脑。
2. 表的datarowadded事件,今天居然遇到不能触发的情况。
简单一句事件代码测试,
messsagebox.show("已触发“)
清楚看到行已经添加,但没有messagebox。令人崩溃的是,我切换到同项目的另一个表,datarowadded事件却可以正确触发,又试了几个表,还是有的可以有的不行。
以上两个问题我实在找不到规律。
恳请老师帮忙提示一下可能的思路。谢谢