您如何从 class 外部访问功能区控件(例如 RibbonEditBox)?
How do you access Ribbon controls (eg. RibbonEditBox) from outside class?
我有一个由 Visual Studio 创建的 Ribbon1 class。
public Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBox;
我想从另一个 class 访问其中一个功能区控件。
using MyRibbon = ExcelAddIn1.Ribbon1;
xlTextID = MyRibbon.IDBox.Text;
我收到错误消息。
An object reference is required for non-static field, method,
property.
我无法将 IDBox 设为静态,因为它是通过 'InitializeComponent()' 方法初始化为 class 的实例。
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 非静态并仍然从外部访问它class?
我能找到答案 - 见下文。
可以通过 Globals.Ribbons.Ribbon1
.
访问从 Microsoft.Office.Tools.Ribbon
派生的所有功能区控件的实例
因此,为了访问由 InitializeComponent()
方法创建的 public Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBox;
,您需要执行 Globals.Ribbons.Ribbon1.IDBox
.
有关在 运行 访问功能区控件的更多信息:
我有一个由 Visual Studio 创建的 Ribbon1 class。
public Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBox;
我想从另一个 class 访问其中一个功能区控件。
using MyRibbon = ExcelAddIn1.Ribbon1;
xlTextID = MyRibbon.IDBox.Text;
我收到错误消息。
An object reference is required for non-static field, method, property.
我无法将 IDBox 设为静态,因为它是通过 'InitializeComponent()' 方法初始化为 class 的实例。
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 非静态并仍然从外部访问它class?
我能找到答案 - 见下文。
可以通过 Globals.Ribbons.Ribbon1
.
Microsoft.Office.Tools.Ribbon
派生的所有功能区控件的实例
因此,为了访问由 InitializeComponent()
方法创建的 public Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBox;
,您需要执行 Globals.Ribbons.Ribbon1.IDBox
.
有关在 运行 访问功能区控件的更多信息: