动态更改检查员自定义功能区控件
Altering inspector custom ribbon controls dynamiccaly
在我的 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;
}
我的问题是,当我打开一个新的检查器时,有时不会调用上面显示的回调方法“GetCustomGroupVisible”。为什么会这样?每次我打开一个新的检查器时,我应该怎么做才能让这个回调方法执行。我错过了什么?
您需要在 NewInspector 事件触发时强制更新功能区。呼叫IRibbonUI.Invalidate。可以从 OnLoad 功能区回调中检索 IRibbonUI(必须在功能区中指定 XML)。
在我的 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;
}
我的问题是,当我打开一个新的检查器时,有时不会调用上面显示的回调方法“GetCustomGroupVisible”。为什么会这样?每次我打开一个新的检查器时,我应该怎么做才能让这个回调方法执行。我错过了什么?
您需要在 NewInspector 事件触发时强制更新功能区。呼叫IRibbonUI.Invalidate。可以从 OnLoad 功能区回调中检索 IRibbonUI(必须在功能区中指定 XML)。