以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  tree控件有BeforeShowContextMenu事件?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=175042)

--  作者:rogen
--  发布时间:2022/2/17 15:11:00
--  tree控件有BeforeShowContextMenu事件?
界面有个tree树控件,用窗体的菜单编辑器做了一个快捷菜单A。
目前已实现在树控件上右键能弹出快捷菜单A。

现在想根据tree的节点的层级来控制快捷菜单的部分菜单项的显隐,
比如0级节点,控制A,B这两个菜单项隐藏,其他显示
1级节点,控制C,D这两个菜单项隐藏,其他显示

帮助里说有BeforeShowContextMenu可以写这个代码,
但在tree控件的事件列表里没看到这个事件。
应该在哪里写呢?

--  作者:有点蓝
--  发布时间:2022/2/17 15:19:00
--  
这个是表格的事件,无法用到目录树控件里。

如果使用的是窗口设计的快捷菜单,这个没有办法了

如果使用的是菜单功能设计的快捷菜单,在MouseDown事件控制菜单的隐藏即可

--  作者:rogen
--  发布时间:2022/2/17 16:29:00
--  

明白了,谢谢。

还是希望窗口的快捷菜单能有更灵活的控制选项。

因为菜单设计里的快捷菜单,在系统菜单状态下(非自定义菜单下)是无法使用的,调试起来不灵活。


--  作者:有点蓝
--  发布时间:2022/2/17 16:45:00
--  
看错了,可以的,调用ShowContextStrip方法打开快捷菜单:http://www.foxtable.com/webhelp/topics/3116.htm

到目录树的MouseUp事件里写代码打开菜单
With e.Sender
这里写代码控制菜单的隐藏
    .ShowContextStrip(e.x, e.y, e.Form.Strips("快捷菜单1"))
End With