0

Visual Studio によって作成された Ribbon1 クラスがあります。

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

別のクラス内からリボン コントロールの 1 つにアクセスしたいと考えています。

using MyRibbon = ExcelAddIn1.Ribbon1;

xlTextID = MyRibbon.IDBox.Text;

エラーメッセージが表示されました。

非静的フィールド、メソッド、プロパティにはオブジェクト参照が必要です。

「InitializeComponent()」メソッドを介してクラスのインスタンスとして初期化されるため、IDBox を静的にできません。

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 に答える