Skip to main content

How to: Create a Popup Menu

  • 3 minutes to read

Before you begin:

  • Drop the BarManager component onto the form.
  • Drop the SvgImageCollection component onto the form.
  • Add the following DevExpress SVG icons to the image collection: Copy, Paste, Add File, Folder.

The following example demonstrates how to create a popup menu and bind the menu to the Form. Right-click the form to invoke the menu (at runtime).

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars;
using DevExpress.XtraEditors;

namespace DevExpressPopupMenu {
    public partial class Form1 : DevExpress.XtraEditors.XtraForm {
        public Form1() {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e) {
            // Completes the BarManager's initialization (to allow its further customization on the form load)
            barManager1.ForceInitialize();
            // Creates a popup menu.
            PopupMenu menu = new PopupMenu();
            menu.Manager = barManager1;
            // Specifies a collection of vector (SVG) icons.
            barManager1.Images = svgImageCollection1;
            // Creates and initializes the items.
            BarSubItem itemAdd = new BarSubItem(barManager1, "Add");
            BarButtonItem itemAddFile = new BarButtonItem(barManager1, "File", 2);
            BarButtonItem itemAddFolder = new BarButtonItem(barManager1, "Folder", 3);
            itemAdd.AddItems(new BarItem[] { itemAddFile, itemAddFolder });
            BarButtonItem itemCopy = new BarButtonItem(barManager1, "Copy", 0);
            BarButtonItem itemPaste = new BarButtonItem(barManager1, "Paste", 1);
            // Adds the items to the popup menu.
            menu.AddItems(new BarItem[] { itemAdd, itemCopy, itemPaste });
            // Creates a separator before the Copy item.
            itemCopy.Links[0].BeginGroup = true;
            // Attaches the popup menu to the form.
            barManager1.SetPopupContextMenu(this, menu);
            // Subscribes to the 'ItemClick' event handler to process item clicks.
            barManager1.ItemClick += BarManager1_ItemClick;
        }
        void BarManager1_ItemClick(object sender, ItemClickEventArgs e) {
            XtraMessageBox.Show(string.Format("The '{0}' item was clicked.", e.Item.Caption));
        }
    }
}

The image below shows the result.

WinForms Popup Menu