2011-07-04 165 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中。如果你看一下documentation page here你看到的界面loaction以下信息:

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

大會: Microsoft.Office.Tools 。常見的(在 Microsoft.Office.Tools.Common.dll)

在您鏈接到你的頁面有:

命名空間: 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