向PopupMenu添加项目

3

我正在尝试找到如何向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;
2个回答

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);
}

如何步骤引入弹出窗口:

如何创建弹出菜单
如何向容器条目(菜单)添加项目
填充弹出菜单
BarManager.SetPopupContextMenu 方法


谢谢,很好。 我想改变的是不要处理每个按钮的itemClick事件,而是处理管理器的点击事件并在那里添加功能。 - TheGateKeeper

1

您的经理是空的:

manager = new BarManager();

您链接的示例正在使用已经创建的BarManager: barManager1,我假设它是在设计器中创建并填充了项目。
从他们的BarManager帮助页面中可以看到:

将 BarManager 添加到窗体/用户控件后,您可以使用上下文菜单直接在表单上创建工具栏和工具栏命令,也可以使用工具栏管理器的“自定义”窗口或其设计器。 请参阅工具栏自定义部分以了解更多信息。


我把我的代码添加到问题中了,你能看一下我是否以正确的方式做了吗? - TheGateKeeper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接