如何从外部类访问Ribbon控件(例如RibbonEditBox)?

时间:2015-06-11 07:44:38

标签: c# ribbon ribbonx

我有一个由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非静态并仍然可以从外部类访问它?

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

1 个答案:

答案 0 :(得分: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