代码如下:
If DataTables("表A").HasChanges Then '如果被修改
If MessageBox.Show("被修改,是否保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then '如果选择是
if Tables("表A").Current("第一列") <> Tables("表A").Current("第二列") then '第一列与第二列不相等
MessageBox.Show("不平!","存盘失败",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) '提示用户'
e.Cancel = True
end if
end if
end if
有时在第一列录入数据,同行第二列未录入,关闭窗口,e.Cancel能起作用,然后关闭窗口设计,点击左上角的保存后再进入窗口,在第一列输入一个数,关闭窗口只有messagebox提示而e.Cancel=TRUE 无效。试了多次不知什么原因.
[此贴子已经被作者于2009-12-8 11:35:33编辑过]
请狐爸看看下面的录像,第一次输入3可以,保存后输入2再关闭就不起作用了
此主题相关图片如下:caca.gif
输入2再关闭时e。cancel 应该拦截,禁止关闭才对 因为不符合“Tables("表A").Current("第一列") <> Tables("表A").Current("第二列") ”条件 。可第二次只有提示,没有阻止关闭
[此贴子已经被作者于2009-12-7 11:30:49编辑过]
狐爸,有一点很重要,你一定没做,第一次成功后你关闭窗口("窗口1"),
点击系统菜单的保存(左上角第一个有磁盘图标的,点击后行号都变为系统颜色),再打开“窗口1”,第一列输入一个数,点击关闭,试一下。
不保存e。cancel永远有效。