outlook在运行时添加标签

时间:2015-04-14 13:31:21

标签: c# outlook-addin

我使用vs 2013 .NET 4.5.1 c#

如何在运行时向outlook功能区添加选项卡?

我试试:

        Microsoft.Office.Tools.Ribbon.RibbonTab OneNewTab;
        OneNewTab = this.Factory.CreateRibbonTab();
        OneNewTab.SuspendLayout();

        OneNewTab.Label = "newtab";
        OneNewTab.Name = "newtab;
        this.Tabs.Add(OneNewTab);

但是我得到了:

  

发生了'System.InvalidOperationException'类型的异常   Microsoft.Office.Tools.Common.Implementation.dll但未处理   在用户代码中附加信息:集合是只读的。不能   改变集合的内容。

2 个答案:

答案 0 :(得分:1)

您需要在设计时添加标签,并使其可见且运行时间。

答案 1 :(得分:1)

Ribbon UI是一个静态的东西。您无法在运行时自行添加新选项卡。

Fluent UI可扩展性模型基于IRibbonExtensibility接口。宿主应用程序调用加载项中实现的GetCustomUI方法以获取自定义UI标记。所以,你不能在运行时这样做。

作为一种解决方法,您可以定义getVisible回调并调用IRibbonUI.Invalidate或IRibbonUI.InvalidateControl方法以强制主机应用程序刷新UI。

在MSDN的以下系列文章中阅读有关Ribbon UI(又名Fluent UI)的更多信息: