细品RibbonX(31):buttonGroup元素详解
资料整理来自于论坛
完整版下载地址:http://download.youkuaiyun.com/download/nodeman/10264659
Loading ...
buttonGroup元素与box元素相似,但它也有一些独特的特征。buttonGroup控件和box控件之间在外观上最大的不同是box控件不会在组周围放置可视的边框,而buttonGroup元素实际上显示边框。buttonGroup元素不会垂直排列,并且与box不同,buttonGroup不会接受box或buttonGroup作为其子元素。
box元素和buttonGroup元素之间主要的不同归纳于下表1。
表1:box元素和buttonGroup元素之间的不同
功能 | Box | ButtonGroup |
水平排列控件 | √ | √ |
垂直排列控件 | √ |
|
接受嵌套的box控件 | √ |
|
接受嵌套的buttonGroup控件 | √ |
|
在控件周围放置可见的轮廓线 |
| √ |
buttonGroup是唯一允许在控件集合周边放置可见的边框的控件。
1、buttonGroup元素必需的属性
buttonGroup元素需要下表2所列的id属性之一。
表2:buttonGroup元素必需的属性
属性 | 何时使用 |
id | 当创建自已的buttonGroup时 |
idQ | 当在命名空间之间创建共享的buttonGroup时 |
2、带有回调签名的可选的静态属性和动态属性
为了相对于一个已存在的控件决定buttonGroup的位置,那么必须使用下表3列出的任一insert属性。
表3:buttonGroup元素可选的insert属性
INSERT属性 | 允许值 | 默认值 | 何时使用 |
insertAfterMso | 有效的Mso组 | 在组末尾插入 | 在Microsoft控件之后插入 |
insertBeforeMso | 有效的Mso组 | 在组末尾插入 | 在Microsoft控件之前插入 |
insertAfterQ | 有效的组idQ | 在组末尾插入 | 在共享的命名空间控件之后插入 |
insertBeforeQ | 有效的组idQ | 在组末尾插入 | 在共享的命名空间控件之前插入 |
也可以为buttonGroup元素设置下表4所列的可选的属性和回调。
表4:buttonGroup元素可选的属性和回调
静态属性 | 动态属性 | 允许值 | 默认值 | 动态属性的VBA回调签名 |
visible | getVisible | true,false,1,0 | true | Sub GetVisible(control As IRibbonControl, ByRef returnedVal) |
当buttonGroup具有getVisible回调可用时,有一个bug。如果其值设置为false,该bug完全妨碍该回调,然而当其值设置为true时,该回调会正确地工作。
3、buttonGroup元素允许的子对象
buttonGroup元素能够包含下列任一或所有的控件:
n button
n control
n dynamicMenu
n gallery
n menu
n splitButton
n toggleButton
4、buttonGroup元素的父对象
在下列任何控件内都能放置buttonGroup元素:
n box
n group
5、创建自定义的buttonGroup元素
(1)创建一个新的.xlsx文件,并将其保存为Excel buttonGroup Example.xlsx。
(2)关闭该文件并在CustomUI Editor中打开。
(3)输入下列XML代码:
<customUI
xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
<ribbon>
<tabs>
<tab id = “rxtab_Demo“
label=“Demo“
insertBeforeMso=“TabHome“>
<group id=“rxgrp_Demo“
label=“Demo Group“>
<box id=“rxboxCustom“
boxStyle=“vertical“> <buttonGroup id=“rxbgrpMsoControls“>
<toggleButton idMso=“Bold“/>
<toggleButton idMso=“Italic“/>
<toggleButton idMso=“Underline“/>
<toggleButton idMso=“UnderlineDouble“
showLabel=“false“/>
</buttonGroup>
</box>
<button id=“rxbtnHappy1“
imageMso=“HappyFace“
label=“Button 1“/>
<button id=“rxbtnHappy2“
imageMso=“HappyFace“
label=“Button 2“/>
<button id=“rxbtnHappy3“
imageMso=“HappyFace“
label=“Button 3“/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
注意,buttonGroup控件被封装在垂直的box控件里。正如在介绍box控件中所提到的,使用box控件能够迫使所有的按钮控件到下一列,从而使您的控件下保留空白。
(4)保存后关闭CustomUI Editor。
(5)在Excel中重新打开该文件,下图即为上述XML代码创建的组。
注意到这些在水平按钮组中的字体控件,成一条线地显示在垂直的box控件顶部。垂直控件为其内容保留了完整的区间,因此三个笑脸按钮显示在其右侧的一列。