香港喜剧电视剧 古装:细品RibbonX(28):splitButton控件详解

来源:百度文库 编辑:偶看新闻 时间:2024/05/09 12:04:33
咋看起来,splitButton实质上与menu元素相同。与使用菜单一样,当用户单击拆分按钮时,将执行一项命令或者显示额外选项的层级列表。
与菜单在不同的项目之间有线条分隔不一样,splitButton没有这样的格式属性。因此,splitButton通常将相似的命令组合在一起,而将不同的命令组织到逻辑组和子组中。
splitButton胜过menu之处是能够将toggleButton控件作为界面中显示的控件的能力(“脸”控件)。当然,也可以使用按钮控件作为splitButton控件的“脸”控件。
1、splitButton元素必需的属性
拆分按钮控件需要下表1所列的id属性之一。
表1:splitButton元素必需的属性
属性
何时使用
id
当创建自已的拆分按钮时
idMso
当使用现有的Microsoft拆分按钮时
idQ
当在命名空间之间创建共享的拆分按钮时
2、带有回调签名的可选的静态属性和动态属性
拆分按钮控件可以使用下表2列出的任一insert属性。
表2:splitButton元素可选的insert属性
INSERT属性
允许值
默认值
何时使用
insertAfterMso
有效的Mso组
在组末尾插入
在Microsoft控件之后插入
insertBeforeMso
有效的Mso组
在组末尾插入
在Microsoft控件之前插入
insertAfterQ
有效的组idQ
在组末尾插入
在共享的命名空间控件之后插入
insertBeforeQ
有效的组idQ
在组末尾插入
在共享的命名空间控件之前插入
也可以为菜单控件设置下表3所列的任何静态属性或等价的动态属性。
表3:splitButton元素可选的属性和回调
静态属性
动态属性
允许值
默认值
动态属性的VBA回调签名
enabled
getEnabled
true,false,1,0
true
Sub GetEnabled(control As IRibbonControl,
ByRef returnedVal)
keytip
getKeytip
1至3个字符
(none)
Sub GetKeytip(control As
IRibbonControl,
ByRef returnedVal)
showLabel
getShowLabel
true,false,1,0
true
Sub GetShowLabel(control
As IRibbonControl,
ByRef returnedVal)
tag
(none)
1至1024个字符
(none)
(none)
visible
getVisible
true,false,1,0
true
Sub GetVisible(control As
IRibbonControl,
ByRef returnedVal)
3、splitButton元素允许的子对象
splitButton元素必须包含一个按钮或一个切换按钮(作为该控件的外观),也可以是一个menu元素,但必须在按钮或切换按钮之后定义。
4、splitButton元素的父对象
在下列任何控件内都能放置splitButton控件:
n         box
n         buttonGroup
n         dynamicMenu
n         group
n         menu
n         officeMenu
5、使用内置的splitButton控件
(1)创建一个新的.xlsx文件,并将其保存为Excel Built In splitButton Example.xlsx。
(2)关闭该文件并在CustomUI Editor中打开。
(3)输入下列XML代码:

startFromScratch=“false“>

label=“Demo“
insertBeforeMso=“TabHome“>
label=“Demo“>
size=“large“/>





下图为上述代码创建的组。

6、创建自定义splitButton控件
本例中,添加能够让我们在工作簿中插入新工作表的拆分按钮控件,而不是在工作表标签中右击,选择插入,然后选择工作表类型。即在插入选项卡中使用拆分按钮使用户插入一个新工作表。此外,因为插入工作表可能是一项频繁的任务,所以将新控件放置在功能区的开始。
(1)新建一个工作簿,以.xlsm为扩展名保存后关闭。
(2)在CustomUI Editor中打开该工作簿,并输入下列XML代码:
xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
startFromScratch=“false“>



label=“Sheets“
insertBeforeMso=“GroupInsertTablesExcel“>
size=“large“>