2012-04-16 174 views
3

我想找到如何將項目添加到devExpress PopupMenu。我曾嘗試以下:將項目添加到PopupMenu

 manager = new BarManager(); 
     listBoxMenu = new PopupMenu(manager); 

     listBoxMenu.ItemLinks.Add(manager.Items["Remove item"]); 
     listBoxMenu.ItemLinks.Add(manager.Items["Clear items"]); 

如圖所示http://documentation.devexpress.com/#WindowsForms/CustomDocument5472(底部),但它給了我一個錯誤說該項目未初始化。

什麼是添加項目的正確方法?我無法在任何地方找到它。

編輯,這裏是我是如何做的:

 //Creates the popup menu to be used for the keywords listbox 
     manager = new BarManager(); 
     listBoxMenu = new PopupMenu(manager); 

     item = new BarButtonItem(manager, "Copy"); 
     item2 = new BarButtonItem(manager, "Clear Item"); 
     item3 = new BarButtonItem(manager, "Clear All Items"); 

     listBoxMenu.ItemLinks.Add(item); 
     listBoxMenu.ItemLinks.Add(item2); 
     listBoxMenu.ItemLinks.Add(item3); 

     //Adds the seperator on the second item 
     item2.Links[0].BeginGroup = true; 

     manager.ItemClick += manager_ItemClick; 

回答

6

檢查此代碼段並使用相同的方式實現。

//創建彈出窗口並一步管理對象

private DevExpress.XtraBars.BarManager barManager1; 
     private DevExpress.XtraBars.PopupMenu buttonContextMenu; 
     DevExpress.XtraBars.BarButtonItem menuButtonExport = new DevExpress.XtraBars.BarButtonItem(); 
     DevExpress.XtraBars.BarButtonItem menuButtonSave = new DevExpress.XtraBars.BarButtonItem(); 

     public TestForm8() 
     { 
      InitializeComponent(); 
      barManager1 = new BarManager(); 
      this.barManager1.Form = this; 
      buttonContextMenu = new DevExpress.XtraBars.PopupMenu(barManager1);     
      this.buttonContextMenu.Name = "subViewContextMenu";    


      menuButtonExport.Caption = "E&xport"; 
      menuButtonExport.Id = 1; 
      menuButtonExport.Name = "menuButtonExport"; 
      menuButtonExport.ItemClick += new ItemClickEventHandler(menuButtonExport_ItemClick); 

      menuButtonSave.Caption = "S&ave"; 
      menuButtonSave.Id = 2; 
      menuButtonSave.Name = "menuButtonSave"; 
      menuButtonSave.ItemClick += new ItemClickEventHandler(menuButtonSave_ItemClick); 
//add items to barmanager 
      this.barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { 
      menuButtonExport, 
      menuButtonSave 
      }); 
//create links between bar items and popup 
      buttonContextMenu.ItemLinks.Add(barManager1.Items["menuButtonExport"]); 
      buttonContextMenu.ItemLinks.Add(barManager1.Items["menuButtonSave"]); 
//finally set the context menu to the control or use the showpopup method on right click of control 
      barManager1.SetPopupContextMenu(btnInsert, buttonContextMenu); 
} 

參考包括彈出:

How to: Create a popup menu
How to: Add items to a container bar item (menu)
Populating Popup Menus
BarManager.SetPopupContextMenu Method

+0

謝謝,非常好。我會改變的是不處理每個按鈕的itemClick事件,但處理經理的點擊事件並在那裏添加功能。 – TheGateKeeper 2012-04-16 16:22:40

+0

閱讀baritems的文檔並實現您想要的功能... – 2012-04-16 16:26:57

1

你的經理是空的:

manager = new BarManager(); 

你聯繫到正在使用已創建了一個BarManager的例子:barManager1,我假設是在設計者中創建的,並且填充了項目。

從他們BarManager help page:使用上下文菜單右邊的表格上

後BarManager已經被添加到窗體/用戶控件,您可以創建酒吧和酒吧命令,使用酒吧經理的自定義窗口或它的設計師。請參閱工具欄自定義部分,瞭解更多信息。

+0

我說我的代碼的問題,你能否檢查我是否以正確的方式做了p租? – TheGateKeeper 2012-04-16 14:25:57