【问题标题】:Adding items to PopupMenu将项目添加到 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;

【问题讨论】:

    标签: c# winforms devexpress


    【解决方案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 menu
    How to: Add items to a container bar item (menu)
    Populating Popup Menus
    BarManager.SetPopupContextMenu Method

    【讨论】:

    • 谢谢,很好。我要改变的是不处理每个按钮的 itemClick 事件,而是处理经理的点击事件并在那里添加功能。
    【解决方案2】:

    你的经理是空的:

    manager = new BarManager();
    

    您链接到的示例使用已创建的BarManagerbarManager1,我假设它是在设计器中创建并填充了项目。

    来自他们的BarManager help page

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

    【讨论】:

    • 我在问题中添加了我的代码,请您检查一下我是否以正确的方式进行操作?
    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2015-07-23
    • 2021-04-12
    • 2018-08-29
    相关资源
    最近更新 更多