将项目添加到 PopupMenu
Posted
技术标签:
【中文标题】将项目添加到 PopupMenu【英文标题】:Adding items to PopupMenu 【发布时间】:2012-04-27 20:13:42 【问题描述】:我正在尝试找到如何将项目添加到 devExpress 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;
【问题讨论】:
【参考方案1】:检查此代码sn-p并使用相同的方式实现。
//创建弹窗和管理对象
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 menuHow to: Add items to a container bar item (menu)Populating Popup MenusBarManager.SetPopupContextMenu Method
【讨论】:
谢谢,很好。我要改变的是不处理每个按钮的 itemClick 事件,而是处理经理的点击事件并在那里添加功能。【参考方案2】:你的经理是空的:
manager = new BarManager();
您链接到的示例使用已创建的BarManager
:barManager1
,我假设它是在设计器中创建并填充了项目。
来自他们的BarManager help page:
在将 BarManager 添加到窗体/用户控件后,您可以使用窗体上的上下文菜单、使用栏管理器的自定义窗口或其设计器来创建栏和栏命令。请参阅工具栏自定义部分以了解更多信息。
【讨论】:
我在问题中添加了我的代码,请您检查一下我是否以正确的方式进行操作?以上是关于将项目添加到 PopupMenu的主要内容,如果未能解决你的问题,请参考以下文章