以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  为什么表的右键菜单,设置了全局表事件,但是不起效?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98022)

--  作者:chen3728060
--  发布时间: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编辑过]

--  作者:有点色
--  发布时间:2017/3/22 23:04:00
--  

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

 

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


--  作者:chen3728060
--  发布时间:2017/3/23 9:20:00
--  
那我想全局表都有这个右键菜单的功能,应该怎么放代码才合适?
--  作者:chen3728060
--  发布时间:2017/3/23 9:21:00
--  回复:(有点色)因为你没有加载表。那么全局事件就没...
以前的时候,我是每个表事件都这样粘贴菜单代码。现在有40多个表了,拼命在粘贴,太麻烦了
--  作者:有点色
--  发布时间:2017/3/23 9:24:00
--  
以下是引用chen3728060在2017/3/23 9:20:00的发言:
那我想全局表都有这个右键菜单的功能,应该怎么放代码才合适?

 

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

 

DataTables.Load("表A")

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