更改检查器自定义功能区控制dynamiccaly

时间:2016-07-29 11:26:04

标签: c# outlook-addin ribbon-control

在我的Outlook加载项中,我最初为检查员分配了一个自定义功能区(一个带控件的新组),以支持我手动创建的某些邮件的某些功能。当我打开每个邮件项目而不管商店或文件夹时,都会显示此自定义选项卡。我想让这个标签仅对我手动创建的自定义邮件的检查员可见。

以下是xml的一个片段,我将其添加为代码中检查器的自定义UI。我添加了一个回调方法来执行以设置可见性( GetCustomGroupVisible )。

  <ribbon>
    <tabs>
      <tab idMso="TabReadMessage">
        <group id="MyCustomGroup"  insertBeforeMso="GroupMailDelete" getVisible="GetCustomGroupVisible">
          <button id="Button1" size="large" onAction="ButtonClick" />
          <button id="Button2" size="large" onAction="ButtonClick" />
        </group>
      </tab>
    </tabs>
  </ribbon>


 // Callback method
 public bool GetCustomGroupVisible(IRibbonControl control)
 {
     bool makeVisible = false;           
     if ( // this is one of my custom mails !)
      {
        makeVisible = true;
      }
      return makeVisible;
  }

我的问题是,上面显示的回调方法&#34; GetCustomGroupVisible &#34;当我打开一个新的检查员时,有时不会被调用。为什么会这样?每次打开新检查器时,我该怎么做才能执行此回调方法。我错过了什么?

1 个答案:

答案 0 :(得分:1)

当NewInspector事件触发时,您需要强制更新功能区。调用IRibbonUI.Invalidate。可以从OnLoad功能区回调中检索IRibbonUI(必须在功能区XML中指定)。