我有一个由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非静态并仍然可以从外部类访问它?
我可以找到答案 - 见下文。
答案 0 :(得分:1)
可以通过Microsoft.Office.Tools.Ribbon
访问从Globals.Ribbons.Ribbon1
派生的所有功能区控件的实例。
因此,为了访问public Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBox;
方法创建的InitializeComponent()
,您可以执行Globals.Ribbons.Ribbon1.IDBox
。
有关在运行时访问功能区控件的更多信息: