Foxtable(狐表)用户栏目专家坐堂 → 为什么表的右键菜单,设置了全局表事件,但是不起效?


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

主题:为什么表的右键菜单,设置了全局表事件,但是不起效?

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


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
为什么表的右键菜单,设置了全局表事件,但是不起效?  发帖心情 Post By:2017/3/22 18:04:00 [只看该作者]

我在

BeforeloadOuterTable事件放了

e.Cancel = True '我使用动态加载,默认什么表都不加载。需要用到啥才加载啥

 

Initialize事件里放了

For Each dt As DataTable In DataTables
    dt.GlobalHandler.BeforeShowContextMenu= True
Next

 

然后全局表事件BeforeShowContextMenu设置了

If SystemMenu = False Then
    e.ContextMenu = ContextMenus("OnlySimple") '这个右键菜单很简单,很通用
End If

 

但是表都没有右键菜单的效果。但是如果我把e.ContextMenu = ContextMenus("OnlySimple")  放在具体每个表的BeforeShowContextMenu里,就都可以生效

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/3/22 18:04:43编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/22 23:04:00 [只看该作者]

因为你没有加载表。那么全局事件就没开启。

 

你要在加载表以后,开启一次全局表事件,才行的。


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


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
  发帖心情 Post By:2017/3/23 9:20:00 [只看该作者]

那我想全局表都有这个右键菜单的功能,应该怎么放代码才合适?

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


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
回复:(有点色)因为你没有加载表。那么全局事件就没...  发帖心情 Post By:2017/3/23 9:21:00 [只看该作者]

以前的时候,我是每个表事件都这样粘贴菜单代码。现在有40多个表了,拼命在粘贴,太麻烦了

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/23 9:24:00 [只看该作者]

以下是引用chen3728060在2017/3/23 9:20:00的发言:
那我想全局表都有这个右键菜单的功能,应该怎么放代码才合适?

 

比如,加载一个表,指定一次。或者是,在currentTableChanged事件或计时器里面开启,也可以。

 

DataTables.Load("表A")

DataTables("表A").GlobalHandler.BeforeShowContextMenu= True


 回到顶部