0

我有一个由 Visual Studio 创建的 Ribbon1 类。

public Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBox;

我想从不同的类中访问其中一个功能区控件。

using MyRibbon = ExcelAddIn1.Ribbon1;

xlTextID = MyRibbon.IDBox.Text;

我收到错误消息。

非静态字段、方法、属性需要对象引用。

我无法将 IDBox 设为静态,因为它已通过“InitializeComponent()”方法初始化为类的实例。

this.IDBox = this.Factory.CreateRibbonEditBox();

我也尝试过创建一个属性。

    private Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBox;

    public Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBoxProperty
    {
        get { return IDBox; }
        set { IDBox = value; }
    }

这样做我看到了完全相同的错误。

如何保持 IDBox 非静态并仍然从外部类访问它?

我可以找到答案 - 见下文。

4

1 回答 1

1

派生自的所有功能区控件的实例都Microsoft.Office.Tools.Ribbon可以通过Globals.Ribbons.Ribbon1.

因此,为了访问public Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBox;InitializeComponent()方法创建的,你会做Globals.Ribbons.Ribbon1.IDBox.

有关在运行时访问功能区控件的更多信息:

https://msdn.microsoft.com/en-us/library/bb772088.aspx

于 2015-06-11T08:56:53.040 回答