Foxtable(狐表)用户栏目专家坐堂 → 不能手动修改,但可以用代码修改


  共有3033人关注过本帖树形打印复制链接

主题:不能手动修改,但可以用代码修改

帅哥哟,离线,有人找我吗?
lesei
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
不能手动修改,但可以用代码修改  发帖心情 Post By:2023/9/19 22:05:00 [只看该作者]

能否设定某列的值(比如,逻辑列)不能手动修改,但可以用代码修改?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/19 22:34:00 [只看该作者]

http://www.foxtable.com/webhelp/topics/0605.htm

在该表的PrepareEdit事件中输入:

If e.Col.Name = "某逻辑列" Then

    e.Cancel = True
End
 
If


 回到顶部
帅哥哟,离线,有人找我吗?
lesei
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/10/18 19:21:00 [只看该作者]

伟大的版主,请问为什么会这样?设定的cancel对代码为什么不起作用?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/18 19:58:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
lesei
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/10/18 20:53:00 [只看该作者]

1.起初,我的问题是:
能否设定某列的值(比如,逻辑列)不能手动修改,但可以用代码修改?
2.您回答给出了一段代码。
3.我在追问:
为什么您的代码能解决问题1?
因为按道理来说,无论是手动更改,还是代码更改,都应该会触发对应的事件,比如prepareedit,或者datacokchanging。
但为什么设定的cancel对“代码更改”无法阻拦,但对“手动更改”可以阻拦?原理是什么?
[此贴子已经被作者于2023/10/18 20:52:57编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/18 21:05:00 [只看该作者]

注意看帮助每个事件的说明呗。有些事件比如PrepareEdit事件只有在单元格操作才会触发。

不过datacokchanging设定的cancel对“代码更改”一样可以阻拦,不要想当然,还是要仔细理解帮助的说明

 回到顶部