リボン XML と VS 2010 を使用して Outlook 2010 用のカスタム ボタン コントロールを作成していますが、ボタンの状態の更新に問題があります。
idMso="TabReadMessage" (Reading email window/inspector) 用の 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() はコントロールの状態をすぐに変更すると思いましたか?
助けてください、ありがとう。