我正在使用 Ribbon XML 和 VS 2010 为 Outlook 2010 构建一些自定义按钮控件,但在刷新按钮状态时遇到了一些问题。
我为 idMso="TabReadMessage" (阅读电子邮件窗口/检查器)创建了 2 个按钮。
按钮的功能区 XML 代码:
<tab idMso="TabReadMessage">
<group id="MyGroup" label="My Label">
<splitButton id="MySplitButton" keytip="QS" size="large">
<button id="SplitButton1" onAction="SplitButton1_Click" label="SplitButton 1" />
<menu id="SplitButton_mnu" keytip="QS">
<button id="Button1" onAction="Button1_Click" label="Button 1" />
<button id="Button2" onAction="Button2_Click" label="Button 2"/>
</menu>
</splitButton>
<toggleButton id="MyToggleButton" onAction="MyToggleButton_Click" size="large" label="Toggle Button" getEnabled="GetEnabledToggleButton" />
</group>
</tab>
拆分按钮点击回调:
Public Sub SplitButton1_Click(ByVal control As IRibbonControl)
ribbon.InvalidateControl("MyToggleButton")
End Sub
切换按钮 getEnabled 回调事件:
Public Function GetEnabledToggleButton(ByVal control As IRibbonControl) As Boolean
Return False
End Function
我想要实现的是,在我单击 SplitButton 后,ToggleButton 将被禁用,我正在使用ribbon.InvalidateControl("MyToggleButton") 使控件无效,这应该触发 ToggleButton 的 getEnabled 回调事件,但它没有不。但是,如果我在检查器窗口之外单击并再次单击检查器窗口,则状态将更改并起作用。我以为 InvalidateControl() 会立即改变控件的状态?
请帮忙,谢谢。