细品RibbonX(21):toggleButton控件详解

细品RibbonX(21):toggleButton控件详解

资料整理来自于论坛
完整版下载地址:http://download.csdn.net/download/nodeman/10264659

 Loading ...

 

切换按钮用于在两种状态之间选择,例如当按下某切换按钮时开启或关闭某功能。

1、toggleButton元素必需的属性

切换按钮需要下表1所列的id属性之一。

表1:toggleButton元素必需的属性

属性

何时使用

id

当创建自已的切换按钮时

idMso

当使用现有的Microsoft切换按钮时

idQ

当在命名空间之间创建共享的切换按钮时

切换按钮也需要表2所列出的onAction回调。

表2:toggleButton元素必需的回调

动态属性

允许值

VBA回调签名

onAction

1至4096个字符

Sub OnAction(control As IRibbonControl,

selectedId As String,

selectedIndex As Integer)

2、带有回调签名的可选的静态属性和动态属性

使用切换按钮时,可以使用下表3列出的任一insert属性。

表3:toggleButton元素可选的insert属性

INSERT属性

允许值

默认值

何时使用

insertAfterMso

有效的Mso组

在组末尾插入

在Microsoft控件之后插入

insertBeforeMso

有效的Mso组

在组末尾插入

在Microsoft控件之前插入

insertAfterQ

有效的组idQ

在组末尾插入

在共享的命名空间控件之后插入

insertBeforeQ

有效的组idQ

在组末尾插入

在共享的命名空间控件之前插入

也可以提供下表4所列的任何或所有的属性。

表4:toggleButton元素可选的属性和回调

静态属性

动态属性

允许值

默认值

动态属性的VBA回调签名

description

getDescription

1至4096个字符

(none)

Sub GetDescription(control

  As IRibbonControl,

ByRef returnedVal)

enabled

getEnabled

true,false,1,0

true

Sub GetEnabled(control As                                             

IRibbonControl,

ByRef returnedVal)

image

getImage

1至4096个字符

(none)

Sub GetImage(control As                                             

IRibbonControl,

ByRef returnedVal)

imageMso

getImage

1至4096个字符

(none)

同上

keytip

getKeytip

1至3个字符

(none)

Sub GetKeytip(control As                                            

IRibbonControl,

ByRef returnedVal)

label

getLabel

1至4096个字符

(none)

Sub GetLabel(control As                                             

IRibbonControl,

ByRef returnedVal)

(none)

getPressed

true,false,1,0

(none)

Sub GetPressed(control As

IRibbonControl,

ByRef returnedVal)

screentip

getScreentip

1至4096个字符

(none)

Sub GetScreentip(control As

 IRibbonControl,

ByRef returnedVal)

showImage

getShowImage

true,false,1,0

true

Sub GetShowImage(control

As IRibbonControl,

ByRef returnedVal)

showLabel

getShowLabel

true,false,1,0

true

Sub GetShowLabel(control

 As IRibbonControl,

ByRef returnedVal)

size

getSize

normal,large

normal

Sub GetSize(control As

IRibbonControl,

ByRef returnedVal)

supertip

getSupertip

1至4096个字符

(none)

Sub GetSupertip(control As

IRibbonControl,

ByRef returnedVal)

tag

(none)

1至4096个字符

(none)

(none)

visible

getVisible

true,false,1,0

true

Sub GetVisible(control As

IRibbonControl,

ByRef returnedVal)

3、toggleButton元素允许的子对象

toggleButton控件不支持任何子对象。

4、toggleButton元素的父对象

在下列任何控件内都能放置toggleButton控件:

n         box

n         buttonGroup

n         dynamicMenu

n         group

n         menu

n         officeMenu

n         splitButton

5、使用内置的切换按钮控件

在功能区中使用了很多内置的切换按钮控件。下面的示例在自定义选项卡中添加四个内置的切换按钮。

(1)创建一个新的.xlsx文件,并将其保存为Excel Built In toggleButton Example.xlsx。

(2)关闭该文件并在CustomUI Editor中打开。

(3)输入下列XML代码:

<customUI xmlns=http://schemas.microsoft.com/office/2006/01/customui>

    <ribbon startFromScratch=false>

        <tabs>

            <tab id=rxtabCustom

                 label=My Tools

                 insertBeforeMso=TabHome>

                <group id=rxgrpFormats

                       label=Formatting>

                    <toggleButton idMso=Bold/>

                    <toggleButton idMso=Italic/>

                    <toggleButton idMso=Underline/>

                    <toggleButton idMso=UnderlineDouble/>

                </group>

            </tab>

        </tabs>

    </ribbon>

</customUI>

(4)保存并关闭CustomUI Editor。在Excel中打开工作簿,如下图所示。

 

6、创建自定义切换按钮控件

下面的示例再次使用在细品RibbonX(18)中使用的预付费用计划示例,我们将添加自定义视图切换功能,这样允许用户显示或隐藏“Expense To”列,如下图所示。

 在Excel中,单击“视图—自定义视图”,选择“添加”并命名为“cvw_Show”。该视图用于返回工作表的全视图,显示所有列。关闭“视图管理器”对话框。

接着,设置隐藏“Expense To”列的第二个视图。隐藏F列,重新打开“视图管理器”对话框,添加一个名为“cvw_Hide”的新的自定义视图。关闭“视图管理器”对话框。

现在,录制切换视图的宏。单击“录制宏”按钮,开始录制:

(1)单击“视图”选项卡。

(2)单击“自定义视图”。

(3)选择cvw_Hide视图并选择“显示”。

(4)再次单击“自定义视图”。

(5)选择cvw_Show视图并选择“显示”。

(6)停止录制。

转到VBE中,查看录制的代码:

    ActiveWorkbook.CustomViews(“cvw_Hide”).Show

    ActiveWorkbook.CustomViews(“cvw_Show”).Show

接下来,让我们设置功能区中所自定义的切换按钮。保存Excel文件,在CustomUI Editor中打开该文件,编写下列XML代码:

<customUI xmlns=http://schemas.microsoft.com/office/2006/01/customui>

    <ribbon startFromScratch=false>

        <tabs>

            <tab id=DemoTab

                 label=Demo

                 insertBeforeMso=TabHome>

                <group id=DemoGroup

                       label=Demo Group>

                    <button id=rxbtnRollForward

                            label=Roll Forward

                            imageMso=CreateReportFromWizard

                            size=large

                            onAction=rxbtnRollForward_Click/>

                    <toggleButton id=rxtglHideExpense

                                 label=Hide Expenses

                                 imageMso=FieldList

                                 size=large

                                 onAction=rxtglHideExpense_Click/>

                </group>

            </tab>

        </tabs>

    </ribbon>

</customUI>

生成回调签名并复制,保存并关闭文件。

在Excel中重新打开该文件,转到VBE中,粘贴回调签名代码。

下面,修改回调以满足需要,代码如下:

‘rxtglHideExpense onAction回调

SubrxtglHideExpense_Click(control As IRibbonControl, pressed As Boolean)

    Select Case pressed

        Case True

           ActiveWorkbook.CustomViews(“cvw_Hide”).Show

        Case False

           ActiveWorkbook.CustomViews(“cvw_Show”).Show

    End Select

End Sub

好了!现在可以转到Excel界面中查看切换按钮的功能了。

然而,如果您隐藏了F列,保存并关闭工作簿,再打开该工作簿时,切换按钮并不会高亮选中,并且需要单击两次才能实现切换功能。此时,可以使用下列方式解决:

n         在Workbook_Open过程中将cvw_Show视图设置为活动的。

n         设置getPressed回调代码测试当工作簿打开时哪个视图为活动视图,然后将其状态返回到切换按钮。

下面再举一个示例。

本示例使用一个切换按钮来切换分页显示。如下面的XML代码所示,在“视图”选项卡中自定义一个组并放置自定义的切换按钮:

 

<customUI onLoad=rxIRibbonUI_onLoadxmlns=http://schemas.microsoft.com/office/2006/01/customui>

    <ribbon startFromScratch=false>

        <tabs>

            <tab idMso=TabView>

                <group id=rxgrpStyleInsp

                       label=Custom Options

                       insertBeforeMso=GroupZoom>

                        <toggleButton id=rxtglPageBreaks

                              label=Display PageBreaks

                              getPressed=rxtglPageBreaks_getPressed

                              getImage=rxtglPageBreaks_getImage

                              onAction=rxtglPageBreaks_click/>

               </group>

            </tab>

        </tabs>

    </ribbon>

</customUI>

生成回调签名,并将其复制。关闭CustomUI Editor。

在Excel中打开该工作簿,转到VBE,粘贴回调签名到标准模块中,并输写代码:

Private ribbonUI AsIRibbonUI

 

‘customUI.onLoad回调

SubrxIRibbonUI_onLoad(ribbon As IRibbonUI)

    Set ribbonUI = ribbon

End Sub

 

‘rxtglPageBreaks getPressed回调

SubrxtglPageBreaks_getPressed(control As IRibbonControl, ByRef returnedVal)

    returnedVal = ActiveSheet.DisplayPageBreaks

End Sub

 

‘rxtglPageBreaks getImage回调

SubrxtglPageBreaks_getImage(control As IRibbonControl, ByRef returnedVal)

    Select Case ActiveSheet.DisplayPageBreaks

        Case True

            returnedVal = “SignatureInsertMenu”

        Case False

            returnedVal = “DesignMode”

    End Select

End Sub

 

‘rxtglPageBreaks onAction回调

SubrxtglPageBreaks_click(control As IRibbonControl, pressed As Boolean)

    ActiveSheet.DisplayPageBreaks = pressed

    ribbonUI.InvalidateControl “rxtglPicHold”

End Sub

保存该工作簿并关闭。重新打开该工作簿,此时可以测试该切换按钮的功能了。

 

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值