以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  ??子表点击鼠标右键无法获得BeforeShowContextMenu 事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23788)

--  作者:zoomify
--  发布时间:2012/9/20 9:39:00
--  ??子表点击鼠标右键无法获得BeforeShowContextMenu 事件
BeforeShowContextMenu 里面只放了一行msgbox("**")代码,普通table上点击鼠标右键能出现msgbox,但子表点击鼠标右键不出现msgbox.
--  作者:zoomify
--  发布时间:2012/9/20 10:04:00
--  

原来不同的表的 BeforeShowContextMenu 是分割开的, 那每个表都要设置下代码.


--  作者:lin_hailun
--  发布时间:2012/9/20 10:09:00
--  
 楼主正解,或者使用全局表事件。

 http://www.foxtable.com/help/topics/0671.htm
--  作者:zoomify
--  发布时间:2012/9/20 15:32:00
--  

默认快捷菜单却是"全局"的,所以让我先以为自己定义的也会是全局的.

 

可是全局表事件没有一个 mouseup这样的东西呀,所以设置不了一个全局生效的右键菜单. 要是能在默认的快捷菜单里面的pop事件能取消当前的快捷菜单,根据表跳出自己的就好了.

 

 

 

为了提高系统效率,在默认情况下,只有CurrentChanged、PositionChanged、AfterSelChange、AfterSelRangeChange四个全局表事件对所有表有效, 而其它全局表事件即使设置了代码,也不会发生作用。
当然这并不意味着其它全局表事件永久无效,只是这些表事件需要一个“开关”去开启。
DataTable有一个GlobalHandler属性,该属性包括以下子属性,对应着每一个全局表事件:

AfterCheckRow
AfterDragColumn
AfterEdit
AfterFilter
AfterFreezeColumn
AfterLoad
AfterLockDataRow
AfterMoveRow
AfterResizeColumn
AfterResizeRow
AfterSelChange
AfterSelRangeChange
AfterSort
AfterUnlockDataRow


--  作者:lin_hailun
--  发布时间:2012/9/20 16:17:00
--  
以下是引用zoomify在2012-9-20 15:32:00的发言:

默认快捷菜单却是"全局"的,所以让我先以为自己定义的也会是全局的.

 

可是全局表事件没有一个 mouseup这样的东西呀,所以设置不了一个全局生效的右键菜单. 要是能在默认的快捷菜单里面的pop事件能取消当前的快捷菜单,根据表跳出自己的就好了.

 


楼主,你这个功能是可以做到的。你自定义一下菜单,通过系统自带的模板去生成。


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120920161711.png
图片点击可在新窗口打开查看


--  作者:lin_hailun
--  发布时间:2012/9/20 16:18:00
--  
然后,去修改默认弹出的快捷菜单的内容便可。