任务十二

在前面的任务六中,我们已经知道功能组和单个菜单组件可以被随意移动,甚至可以同时在多个地方出现。
快捷菜单命令也有类似的特性,同一个快捷菜单命令可以同时出现在多个快捷菜单中。

例如打开示例文件“实战菜单.Table”,进入菜单设计器后,可以发现快捷菜单Range是空的,里面并没有任何命令。
可实际使用的时候,选定多个单元格,右击后弹出的快捷菜单Range是有命令的,这是为什么呢?

这是因为我们在菜单的Load事件中加入了下面一段代码:

'任务十二
Dim
mnu1 As RibbonMenu.ContextMenu = ContextMenus("Cell")
Dim
mnu2 As RibbonMenu.ContextMenu = ContextMenus("Range")
mnu2.Items.Add(mnu1.Items("Cut"), False)
mnu2
.Items.Add(mnu1.Items("Copy"
))
mnu2
.Items.Add(mnu1.Items("Paste"
))
mnu2
.Items.Add(mnu1.Items("Ascending"
))
mnu2
.Items.Add(mnu1.Items("Descending"
))
mnu2
.Items.Add(mnu1.Items("UnSort"
))

上面的代码在菜单生成后,会将Cell快捷菜单中的部分命令加入到Range快捷菜单中,避免了重复设计。
不仅仅是快捷菜单命令,子菜单也可以被同时加入到多个快捷菜单或其它子菜单中。

提示:

Add方法的第二个参数是可选的,用于决定是否在新加入的命令前显示一条分割线,如果省略此参数,则保持现有设置不变。


本页地址:http://www.foxtable.com/webhelp/topics/2233.htm