以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 为何窗口BeforeClose事件的Cancel不起作用(狐爸请进) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5306) |
||||
-- 作者:i52117 -- 发布时间:2009/12/7 0:31:00 -- 为何窗口BeforeClose事件的Cancel不起作用(狐爸请进) 代码如下: 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编辑过]
|
||||
-- 作者:程兴刚 -- 发布时间:2009/12/7 3:13:00 -- 逻辑错误 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/12/7 8:43:00 -- 我测试可以 |
||||
-- 作者:i52117 -- 发布时间:2009/12/7 9:21:00 -- 请狐爸看看下面的录像,第一次输入3可以,保存后输入2再关闭就不起作用了 ![]() ![]() |
||||
-- 作者:i52117 -- 发布时间:2009/12/7 11:26:00 -- 请狐爸看一下 ![]() |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/12/7 11:26:00 -- 我确实没有看出问题 |
||||
-- 作者:i52117 -- 发布时间:2009/12/7 11:30:00 -- 输入2再关闭时e。cancel 应该拦截,禁止关闭才对 因为不符合“Tables("表A").Current("第一列") <> Tables("表A").Current("第二列") ”条件 。可第二次只有提示,没有阻止关闭 [此贴子已经被作者于2009-12-7 11:30:49编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/12/7 11:51:00 -- 我第二次也关闭不了的,多少次都关闭不了。 ![]() |
||||
-- 作者:i52117 -- 发布时间:2009/12/7 13:34:00 -- 狐爸,有一点很重要,你一定没做,第一次成功后你关闭窗口("窗口1"),点击系统菜单的保存(左上角第一个有磁盘图标的,点击后行号都变为系统颜色),再打开“窗口1”,第一列输入一个数,点击关闭,试一下。 不保存e。cancel永远有效。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/12/7 15:47:00 -- 我还是没事。 |