细品RibbonX(32):labelControl元素详解
2018-03-02 11:26
204 查看
细品RibbonX(32):labelControl元素详解
资料整理来自于论坛
完整版下载地址:http://download.csdn.net/download/nodeman/10264659
Loading ...
labelControl为开发者提供了一种在功能区中显示文本标签的方式。这类控件没有行为,通常用作其它控件的标题或描述。常常用来为在一列中排列的按钮提供上下文。
1、labelControl元素必需的属性
labelControl元素需要下表1所列的id属性之一。
表1:labelControl元素必需的属性
2、带有回调签名的可选的静态属性和动态属性
为了相对于另一个控件决定labelControl的位置,使用下表2列出的任一insert属性。
表2:labelControl元素可选的insert属性
也可以为labelControl元素设置下表3所列任意属性或等价的回调的组合。
表3:labelControl元素可选的属性和回调
3、labelControl元素允许的子对象
labelControl元素不支持任何类型的子控件。
4、labelControl元素的父对象
在下列任何控件内都能放置labelControl元素:
n box
n group
5、使用内置的labelControl元素
Microsoft实际上在Excel中公开了6个labelControl元素。然而,创建自定义labelControl更快且更直接。
6、创建自定义的labelControl元素
labelControl的一个相当酷的使用是将其作为标记。
(1)创建一个新的.xlsm文件,并将其保存为Excel labelControl Example.xlsm。
(2)关闭该文件并在CustomUI Editor中打开。
(3)输入下列XML代码:
<customUI onLoad=“rxIRibbonUI_onLoad“xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
<ribbon startFromScratch=“false“>
<tabs>
<tab id=“rxtabDemo“
insertBeforeMso=“TabHome“
label=“Demo“>
<group id=“rxgrpDemo“
label=“Demo Group“>
<labelControl id=“rxlblFeedback“
getLabel=“rxlblFeedback_getLabel“/>
<button id=“rxbtnProcess“
getImage=“rxbtnProcess_getImage“
onAction=“rxbtnProcess_click“/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
(4)生成回调签名,保存后关闭CustomUIEditor。
(5)在Excel中重新打开该文件,在VBE的标准模块中粘贴回调签名。
在编辑回调代码之前,让我们先考虑一个完整的操作过程。我们希望在单击按钮之前标签去读取Process Accounts,随后是Accounts Complete。我们需要一个变量,存储表明按钮是否被单击,因此在模块的开始声明该变量:
Dim bButtonClicked AsBoolean
当然,还需要包括一个存储RibbonUI的全局变量。现在,创建onLoad回调代码:
Dim rxIRibbonUI AsIRibbonUI
‘customUI.onLoad回调
Sub rxIRibbonUI_onLoad(ribbonAs IRibbonUI)
Set rxIRibbonUI = ribbon
End Sub
接下来,为labelControl创建getLabel回调。评估是否单击按钮的最容易的方法是检查bButtonClicked变量。使用Select Case语句,如下所示:
‘rxlblFeedback getLabel回调
SubrxlblFeedback_getLabel(control As IRibbonControl, ByRef returnedVal)
Select Case bButtonClicked
Case False
returnedVal = “Process Accounts”
Case True
returnedVal = “Accounts Complete”
End Select
End Sub
同样,通过Select语句的评估决定显示图像或标签:
‘rxbtnProcess getImage回调
Sub rxbtnProcess_getImage(controlAs IRibbonControl, ByRef returnedVal)
Select Case bButtonClicked
Case False
returnedVal =“CreateReportFromWizard”
Case True
returnedVal = “DeclineInvitation”
End Select
End Sub
最后,来处理按钮。同样,检查bButtonClicked的值,如果为False,那么修改bButtonClicked的值为true,运行程序,然后使功能区无效。当然,无效将触发重建,控件将会更新以显示用户已经实施的操作。如果bButtonClicked的值已经是true,那么告诉用户他们已经完成了程序。代码如下:
‘rxbtnProcess onAction回调
SubrxbtnProcess_click(control As IRibbonControl)
Select Case bButtonClicked
Case False
bButtonClicked = True
‘Code to process accounts goes here
rxIRibbonUI.Invalidate
Case True
MsgBox “已经运行了这个程序!”
End Select
End Sub
(6)保存并关闭该工作簿,然后重新打开该工作簿,结果如下图所示。
单击该按钮,该组将更新为下图所示的结果。
再次单击该按钮,将会弹出一条消息框。
正如上述代码所示,我们使用了标签和图形来唤起用户对状态的注意,或者状态的改变。这是一种技巧,即使用labelControl来警告用户对象或事件的状态。
资料整理来自于论坛
完整版下载地址:http://download.csdn.net/download/nodeman/10264659
Loading ...
labelControl为开发者提供了一种在功能区中显示文本标签的方式。这类控件没有行为,通常用作其它控件的标题或描述。常常用来为在一列中排列的按钮提供上下文。
1、labelControl元素必需的属性
labelControl元素需要下表1所列的id属性之一。
表1:labelControl元素必需的属性
属性 | 何时使用 |
id | 当创建自已的labelControl时 |
idMso | 当使用已有的Microsoft labelControl时 |
idQ | 当在命名空间之间创建共享的labelControl时 |
为了相对于另一个控件决定labelControl的位置,使用下表2列出的任一insert属性。
表2:labelControl元素可选的insert属性
INSERT属性 | 允许值 | 默认值 | 何时使用 |
insertAfterMso | 有效的Mso组 | 在组末尾插入 | 在Microsoft控件之后插入 |
insertBeforeMso | 有效的Mso组 | 在组末尾插入 | 在Microsoft控件之前插入 |
insertAfterQ | 有效的组idQ | 在组末尾插入 | 在共享的命名空间控件之后插入 |
insertBeforeQ | 有效的组idQ | 在组末尾插入 | 在共享的命名空间控件之前插入 |
表3:labelControl元素可选的属性和回调
静态属性 | 动态属性 | 允许值 | 默认值 | 动态属性的VBA回调签名 |
enabled | getEnabled | true,false,1,0 | true | Sub GetEnabled(control As IRibbonControl, ByRef returnedVal) |
label | getLabel | 1至1024个字符 | (none) | Sub GetLabel(control As IRibbonControl, ByRef returnedVal) |
screentip | getScreentip | 1至1024个字符 | (none) | Sub GetScreentip(control As IRibbonControl, ByRef returnedVal) |
showLabel | getShowLabel | true,false,1,0 | true | Sub GetShowLabel(control As IRibbonControl, ByRef returnedVal) |
supertip | getSupertip | 1至1024个字符 | (none) | Sub GetSupertip(control As IRibbonControl, ByRef returnedVal) |
tag | (none) | 1至1024个字符 | (none) | (none) |
visible | getVisible | true,false | true | Sub GetVisible(control As IRibbonControl, ByRef returnedVal) |
labelControl元素不支持任何类型的子控件。
4、labelControl元素的父对象
在下列任何控件内都能放置labelControl元素:
n box
n group
5、使用内置的labelControl元素
Microsoft实际上在Excel中公开了6个labelControl元素。然而,创建自定义labelControl更快且更直接。
6、创建自定义的labelControl元素
labelControl的一个相当酷的使用是将其作为标记。
(1)创建一个新的.xlsm文件,并将其保存为Excel labelControl Example.xlsm。
(2)关闭该文件并在CustomUI Editor中打开。
(3)输入下列XML代码:
<customUI onLoad=“rxIRibbonUI_onLoad“xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
<ribbon startFromScratch=“false“>
<tabs>
<tab id=“rxtabDemo“
insertBeforeMso=“TabHome“
label=“Demo“>
<group id=“rxgrpDemo“
label=“Demo Group“>
<labelControl id=“rxlblFeedback“
getLabel=“rxlblFeedback_getLabel“/>
<button id=“rxbtnProcess“
getImage=“rxbtnProcess_getImage“
onAction=“rxbtnProcess_click“/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
(4)生成回调签名,保存后关闭CustomUIEditor。
(5)在Excel中重新打开该文件,在VBE的标准模块中粘贴回调签名。
在编辑回调代码之前,让我们先考虑一个完整的操作过程。我们希望在单击按钮之前标签去读取Process Accounts,随后是Accounts Complete。我们需要一个变量,存储表明按钮是否被单击,因此在模块的开始声明该变量:
Dim bButtonClicked AsBoolean
当然,还需要包括一个存储RibbonUI的全局变量。现在,创建onLoad回调代码:
Dim rxIRibbonUI AsIRibbonUI
‘customUI.onLoad回调
Sub rxIRibbonUI_onLoad(ribbonAs IRibbonUI)
Set rxIRibbonUI = ribbon
End Sub
接下来,为labelControl创建getLabel回调。评估是否单击按钮的最容易的方法是检查bButtonClicked变量。使用Select Case语句,如下所示:
‘rxlblFeedback getLabel回调
SubrxlblFeedback_getLabel(control As IRibbonControl, ByRef returnedVal)
Select Case bButtonClicked
Case False
returnedVal = “Process Accounts”
Case True
returnedVal = “Accounts Complete”
End Select
End Sub
同样,通过Select语句的评估决定显示图像或标签:
‘rxbtnProcess getImage回调
Sub rxbtnProcess_getImage(controlAs IRibbonControl, ByRef returnedVal)
Select Case bButtonClicked
Case False
returnedVal =“CreateReportFromWizard”
Case True
returnedVal = “DeclineInvitation”
End Select
End Sub
最后,来处理按钮。同样,检查bButtonClicked的值,如果为False,那么修改bButtonClicked的值为true,运行程序,然后使功能区无效。当然,无效将触发重建,控件将会更新以显示用户已经实施的操作。如果bButtonClicked的值已经是true,那么告诉用户他们已经完成了程序。代码如下:
‘rxbtnProcess onAction回调
SubrxbtnProcess_click(control As IRibbonControl)
Select Case bButtonClicked
Case False
bButtonClicked = True
‘Code to process accounts goes here
rxIRibbonUI.Invalidate
Case True
MsgBox “已经运行了这个程序!”
End Select
End Sub
(6)保存并关闭该工作簿,然后重新打开该工作簿,结果如下图所示。
单击该按钮,该组将更新为下图所示的结果。
再次单击该按钮,将会弹出一条消息框。
正如上述代码所示,我们使用了标签和图形来唤起用户对状态的注意,或者状态的改变。这是一种技巧,即使用labelControl来警告用户对象或事件的状态。
相关文章推荐
- 细品RibbonX(31):buttonGroup元素详解
- 细品RibbonX(33):separator元素详解
- 细品RibbonX(22):item元素详解
- 细品RibbonX(35):dialogBoxLauncher元素详解
- 细品RibbonX(29):dynamicMenu元素详解
- 细品RibbonX(30):box元素详解
- web.xml配置文件元素详解
- 详解Bootstrap的aria-label和aria-labelledby应用
- wpf如何获取control template里的元素
- HTML-CSS浮动元素详解
- IMG元素加载行为详解
- CSS 块状元素和内联元素的详解
- C++中MFC Tab Control控件的使用详解
- Struts2的action的配置文件的result元素的type属性详解。
- 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中的元素
- DTD元素详解
- 深入详解WPF ControlTemplate
- CSS元素详解
- 详解 CSS 属性 - 伪类和伪元素的区别
- Arcgis Engine(ae)接口详解(8):临时元素(element)