【发布时间】:2015-02-03 16:02:54
【问题描述】:
我有一个自定义功能区,我在其中添加了一个包含切换按钮的选项卡。此切换按钮有一个 getPressed 属性,该属性链接到返回切换按钮按下状态的回调函数。切换按钮的目的是显示/隐藏自定义任务窗格。这很好用。
但是,我的问题是,在 Excel 2013 中,如果我打开了两个或更多工作簿,当我使切换按钮无效时,只有一个活动工作簿被更新。我还想更新其他工作簿上切换按钮的按下状态,因为自定义任务窗格在所有工作簿中可见或不可见。
有人知道如何使 Excel 2013 中所有工作簿的功能区中的控件无效吗?
我正在使用 vb.net 和 excel-dna。 切换按钮的定义如下:
<toggleButton id="toggleButtonInputData" size="large" onAction="rxToggleButton_onAction" getPressed="rxToggleButton_getPressed" getImage="rxButton_GetImage" getLabel="rxbutton_GetLabel" getEnabled="rxGenericControl_GetEnabled" visible="true"/>
回调函数为:
Function rxToggleButton_GetPressed(ctl As CustomUI.IRibbonControl) As Object
Select Case ctl.Id
Case "toggleButtonInputData"
Return CTP_InputData.IsToggleButtonPressed
End Select
End Function
使我使用的切换按钮无效:
Public Sub CTP_InputData_VisibleStateChange() Handles CTP_InputData.VisibleStateChange
XLRibbon.myRibbon.InvalidateControl("toggleButtonInputData")
End Sub
【问题讨论】:
-
您是否尝试过改用 Invalidate 方法?
-
是的,结果是一样的:只更新了活动的工作簿功能区。
标签: vb.net ribbon excel-2013 excel-dna