2011-07-04 10 views
1

データベースからのデータを使用して、実行時にRibbonMenuコントロールに値を設定する必要があります。私が取るRibbonMenuに値を設定できません

私にオフセット:コード付き http://msdn.microsoft.com/en-us/library/microsoft.office.tools.ribbon.ribbonmenu(v=vs.90).aspx

private void PopulateCustomerMenu() 
{ 
    // Add two sub-menus to EmployeeMenu and populate each sub-menu 
    // First sub-menu 
    RibbonMenu subMenu1 = new RibbonMenu(); //new RibbonMenu(); is underlined red 
    subMenu1.Dynamic = true; 
    subMenu1.Label = "A - M"; 
    subMenu1.Items.Add(new RibbonToggleButton()); //new RibbonToggleButton() is as well 
    ((RibbonToggleButton)subMenu1.Items.Last()).Label = "Hall, Don"; 
    subMenu1.Items.Add(new RibbonToggleButton()); //new RibbonToggleButton() is as well 
    ((RibbonToggleButton)subMenu1.Items.Last()).Label = "Valdez, Rachel"; 
    CustomerMenu.Items.Add(subMenu1); 

    // Second sub-menu 
    RibbonMenu subMenu2 = new RibbonMenu(); //new RibbonMenu(); is as well 
    subMenu2.Dynamic = true; 
    subMenu2.Label = "N - Z"; 
    subMenu2.Items.Add(new RibbonToggleButton()); //new RibbonToggleButton() is as well 
    ((RibbonToggleButton)subMenu2.Items.Last()).Label = "Robinson, Alex"; 
    CustomerMenu.Items.Add(subMenu2); 
} 

私が得る唯一のことは、Visual Studioは、エラー1は、抽象クラスやインタフェースのインスタンスを作成できません」と言っています'Microsoft.Office.Tools.Ribbon.RibbonMenu' C:¥Users¥Christoffer¥Documents¥Visual Studio 2010¥Projects¥OutlookAddIn2¥OutlookAddIn2¥Ribbon1.cs 80 35 OutlookAddIn2

私は最後の15時間立ち往生していたので、何かのために開いています....アイデア?

答えて

1

興味深いことに、インターフェイスがあり、同じDLLの異なる名前のクラスがあります。

名前空間:: Microsoft.Office.Tools.Ribbon

アセンブリ: Microsoft.Office.Toolsあなたはdocumentation page hereを見れば、あなたは、インターフェイスのloactionに関する次の情報を参照してください( Microsoft.Office.Tools.Common.dll中).Commonページで

あなたにリンクしています

名前空間: Microsoft.Office.Tools.Ribbon

アセンブリ: Microsoft.Office.Tools.Common.v9.0( Microsoft.Office.Tools.Common.v9で.0.dll)

あなたがリンクしたのは、Visual Studio 2007版(したがって、リンクのv = vs90)です。そのバージョンを使用しようとしている場合は、適切なdll(Microsoft.Office.Tools.Common.v9.0.dll)がプロジェクトで参照されていて、新しいdllでは参照されていないことを確認してください(Microsoft.Office.Tools.Common.dll )

新しいdllを使用する場合は、メニューまたはメニュー項目を作成するには、リボンを構築する場所に基づいてRibbonFactoryのインスタンスを取得する必要があります。たとえば、Wordにリボンメニューを追加しようとしていた場合はGlobals.Factory.GetRibbonFactory()と呼び出し、この呼び出しで返されたファクトリを使用してリボンを作成します。

+0

あなたは正しい方向に私を送ります...いくつかの頭を撫でた後、私は "Microsoft.Office.Tools.Common"でそれを行う正しい方法を考え出しました(私の答えを参照)。 – chjortlund

+0

私は6時間待つ必要があります実際に動作する新しいコードで自分の質問に答えてください。 – chjortlund

関連する問題