Foxtable(狐表)用户栏目专家坐堂 → [求助]有没有代码可以判断当前菜单是否是用户自定义的菜单或者是系统菜单?


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

主题:[求助]有没有代码可以判断当前菜单是否是用户自定义的菜单或者是系统菜单?

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/2/5 10:15:00 [显示全部帖子]

1、没有必要,因为您现在是以设计者身份操作,一旦非设计者进入,您不给他留切换到系统菜单的入口,他自己用热键也切换不了;

2、判断自定义菜单的某个被隐藏的功能组或所属菜单按钮是否存在来判断是否是自定义菜单试试

3、也可以变通实现,在打开自定义菜单的代码后面向某个全局变量输入一个值,在打开系统菜单的代码后面,向这个全局变量输入另一个值,您只需要判断这个值即可。


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/2/6 1:55:00 [显示全部帖子]

这样试试:

……

If RibbonTabs("自定义功能区").Contains("自定义功能组") = True Then

……

 

这个自定义功能组必须是系统菜单中没有的,只有自定义菜单中才存在的


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/2/6 23:49:00 [显示全部帖子]

我在五楼的代码组合错了,仔细消化一下帮助结果应该这样,您的代码也没必要那么复杂,写代码要学会精简,试试这个代码,这也许是一个最简单的方法:

 

If  RibbonTabs.Contains(MainTable.name & "功能区") = True
    RibbonTabs("表A功能区").Visible = (MainTable.name = "表A")
    RibbonTabs("表B功能区").Visible = (MainTable.name = "表B")
    RibbonTabs("表C功能区").Visible = (MainTable.name = "表C")
    RibbonTabs("公共功能区").Visible = True
End If

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1(4).table

 

不过,贺老师还需要将这一节帮助细化,否则,很难懂,需要给出实例:

 

项目集合

功能区、功能组、工具栏、菜单按钮、组合按钮、组合框、程序菜单、配置栏等都是容器,这些组件可容纳其他菜单组件。
大多数容器类的菜单组件都有一个名为Items属性,表示其包含的菜单组件项目集合。
当然也有例外,例如程序菜单(ApplicationMenu),它有三个项目集合,所以集合的名称不是Items,请参考前面的介绍。
利用项目集合,不仅可以获得指定名称的菜单组件,我们还可以向其中增加、插入和删除菜单组件。

项目集合的方法:

方法 说明
Contains 判断是否包括指定名称的组件。

语法:

Contains(Name)

Name: 组件名称
Clear 清除所有组件
Add 增加一个组件,语法:

Add(Item)

Item: 要增加的项目
Insert 在指定位置插入一个组件。

语法:

Insert(Index, Item)

Index: 整数型,插入位置
Item: 要插入的组件。
Remove 删除指定的组件,或者删除指定名称的组件。

语法:

Remove(Name)
Remove(Item)

Name: 组件名称
Item:组件

利用项目集合,可以动态生成菜单,后面的实战演练会介绍。

[此贴子已经被作者于2012-2-7 0:00:55编辑过]

 回到顶部