2015-06-11 61 views
0

我有一個由Visual Studio創建的Ribbon1類。如何從外部類訪問Ribbon控件(例如RibbonEditBox)?

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

的可能重複的[對象引用是所必需的非靜態字段,方法或屬性「WindowsApplication1.Form1.setTextboxText(int)的](http://stackoverflow.com/questions/498400/an-object-reference-is-required-for-the-nonstatic-field-method-or-property-wi) –

+1

根據許多近乎相同的問題在這裏「對象引用對於非靜態字段,方法,屬性是必需的」,您正在訪問該類,就好像它是該類的實例(對象)一樣。您需要創建一個「MyRibbon.IDBox」實例(或者更類似於訪問由'InitializeComponent'方法創建的現有實例),而不是'MyRibbon.IDBox.Text'。 –

+0

如何訪問由InitializeComponent方法創建的實例? – LLaP

回答

0

來自Microsoft.Office.Tools.Ribbon的所有色帶控件的實例可通過Globals.Ribbons.Ribbon1訪問。

因此,要訪問由InitializeComponent()創建的public Microsoft.Office.Tools.Ribbon.RibbonEditBox IDBox;方法,您應該做Globals.Ribbons.Ribbon1.IDBox。關於在運行時訪問功能區控件

的更多信息:

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

相關問題