以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 不能手动修改,但可以用代码修改 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188422) |
-- 作者:lesei -- 发布时间:2023/9/19 22:05:00 -- 不能手动修改,但可以用代码修改 能否设定某列的值(比如,逻辑列)不能手动修改,但可以用代码修改? |
-- 作者:有点蓝 -- 发布时间:2023/9/19 22:34:00 -- http://www.foxtable.com/webhelp/topics/0605.htm 在该表的PrepareEdit事件中输入: If e.Col.Name = "某逻辑列" Then e.Cancel = True |
-- 作者:lesei -- 发布时间:2023/10/18 19:21:00 -- 伟大的版主,请问为什么会这样?设定的cancel对代码为什么不起作用? |
-- 作者:有点蓝 -- 发布时间:2023/10/18 19:58:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626 |
-- 作者:lesei -- 发布时间:2023/10/18 20:53:00 -- 1.起初,我的问题是: 能否设定某列的值(比如,逻辑列)不能手动修改,但可以用代码修改? 2.您回答给出了一段代码。 3.我在追问: 为什么您的代码能解决问题1? 因为按道理来说,无论是手动更改,还是代码更改,都应该会触发对应的事件,比如prepareedit,或者datacokchanging。 但为什么设定的cancel对“代码更改”无法阻拦,但对“手动更改”可以阻拦?原理是什么?
[此贴子已经被作者于2023/10/18 20:52:57编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/10/18 21:05:00 -- 注意看帮助每个事件的说明呗。有些事件比如PrepareEdit事件只有在单元格操作才会触发。 不过datacokchanging设定的cancel对“代码更改”一样可以阻拦,不要想当然,还是要仔细理解帮助的说明 |