如何在所有打开的窗户中刷新色带

时间:2015-02-03 11:57:09

标签: c# vsto outlook-addin

我正在编写VSTO Outlook 2013加载项并创建了一个Explorer XML功能区文件来显示一些自定义功能区按钮。当单击一个功能区按钮时,插件运行一个长时间运行的异步过程,并显示一个"加载详细信息..."在资源管理器功能区中标记,以通知用户发生了什么,并允许他们继续在Outlook中工作。

当长时间运行的进程完成时,它会调用以下代码来刷新功能区并隐藏加载标签:

RibbonUI.Invalidate();

问题是,如果用户打开了2个资源管理器窗口,则只刷新活动窗口中的功能区(并且其他浏览器窗口仍然显示加载标签)。

我已尝试在打开的资源管理器窗口周围循环并激活每个窗口以尝试强制功能区刷新,但它没有工作。

有人可以告诉我如何强制Outlook中所有打开的窗口中的色带刷新?

1 个答案:

答案 0 :(得分:0)

调用IRibbonExtensibility.GetCustomUI回调多少次?

通常,在将焦点移动到另一个Outlook窗口时,应调用Ribbon回调。