代码之家  ›  专栏  ›  技术社区  ›  Mike Caron

在Outlook加载项启动时是否为空?

  •  3
  • Mike Caron  · 技术社区  · 15 年前

    我正在使用vsto 2010和.NET 4为Outlook 2010创建插件。我使用XML方法设计功能区,因为我需要上下文菜单挂钩。不幸的是,虽然功能区是在启动外接程序的启动事件处理程序之前创建的,但我无法使用 Globals.Ribbons.MyRibbon 在处理程序中!我在我的bribbon.cs代码中添加了以下内容:

    partial class ThisRibbonCollection : Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection
    {
      internal MyRibbon MyRibbon
      {
        get { return this.GetRibbon<MyRibbon>(); }
      }
    }
    

    但似乎RibbonReadOnlyCollection是 空的 当我试图从启动事件处理程序访问它时。

    另一方面,如果我使用设计器,就可以毫无问题地访问集合。如何将新的功能区添加到集合中?我看不到任何可调整的设置方法或功能区集合的任何实例。

    2 回复  |  直到 9 年前
        1
  •  1
  •   Community CDub    8 年前

    使用XML创建的功能区不能使用 Globals.Ribbons . 见 this 回答。

        2
  •  0
  •   kavun    14 年前

    此插件

    public Ribbon myRibbon;
    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
                {
                    Ribbon appointmentRibbon = new Ribbon();
                    myRibbon = appointmentRibbon;  // save to local variable
    
                    IRibbonExtensibility ribbonExtensibility = appointmentRibbon;
                    return ribbonExtensibility;
                }