以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  快捷菜单分别设置  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=152782)

--  作者:2425004926
--  发布时间:2020/7/22 9:39:00
--  快捷菜单分别设置
上传了事例文件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:快捷菜单测试.zip

目的是:

表A:菜单项目147可用,其它不可用
表B:菜单项目256可用,其它不可用
表C:菜单项目369可用,其它不可用

表A的单击事件:
Dim sit As WinForm.StripItem                   
Select Case sit.Name
    Case "项目1","项目4","项目7"
        sit.Enabled = True
    Case "项目2","项目3","项目57","项目6","项目8","项目9"
        sit.Enabled = False
End Select

上面的代码有问题,那么是要将菜单一、二、三的子项目独立分开设置,还是统一可以设置?代码怎么写?

--  作者:有点蓝
--  发布时间:2020/7/22 9:46:00
--  
3个快捷菜单分别绑定3个表就行了:http://www.foxtable.com/webhelp/topics/3116.htm


给Table指定快捷菜单

假定窗口中有一个名为Table1的Table控件,希望在窗口中重新设计一个快捷菜单,代替系统默认的快捷菜单。
首先我们要取消系统默认的快捷菜单,在对应的表事件BeforeShowContextMenu加上代码:

e.Cancel = True

然后在窗口的AfterLoad事件中加上代码:

e.Form.Controls("Table1").ContextStrip = e.Form.Strips("快捷菜单1")


--  作者:2425004926
--  发布时间:2020/7/22 9:59:00
--  
 我上传的文件中, 我已经给按钮绑定了快捷菜单,变为左键单击了,
我的目的是表A操作时,快捷菜单1的项目1可用,快捷菜单2的项目4可用,快捷菜单3的项目7可用(这个点击按钮菜单1、2 、3 可以看到项目1、2、3、4、5、6、7、8、9)
表B,表C以此类推

--  作者:有点蓝
--  发布时间:2020/7/22 10:02:00
--  
e.Form.Strips("快捷菜单1").items("项目1").Enabled = True
e.Form.Strips("快捷菜单1").items("项目2").Enabled = false

--  作者:2425004926
--  发布时间:2020/7/22 10:13:00
--  
 谢谢老师!明白了