我正在使用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()会立即改变控件的状态吗?
请帮助,谢谢。
答案 0 :(得分:0)
我在Addin类中创建了一个子程序,在这个子程序中我使MyToggleButton控件无效。
SplitButton1_Click()事件将调用子例程,从而使MyToggleButton控件无效,这项工作,但不确定是否有更好/推荐的方法来执行此操作。