Menus

  • 5 minutes to read

DXPopupMenu is a popup menu embedded in DevExpress .NET controls. If you need to create a custom popup menu, we recommend you to use the PopupMenu component instead. You can still use DXPopupMenu for this purpose. However, DXPopupMenu does not provide a designer, so you will need to customize DXPopupMenu solely in code.

This document provides more information on the DXPopupMenu.

Specific DevExpress .NET controls (such as GridControl, TreeList, PivotGridControl, LayoutControl, etc.) have built-in popup menus, which are DXPopupMenu descendants.

You can customize these control menus via corresponding events.

Control

Menu Customization Event

GridControl

GridView.PopupMenuShowing

See Popup Menus to learn more.

TreeList

TreeList.PopupMenuShowing

See Customize the Standard Context Menus to learn more

PivotGridControl

PivotGridControl.PopupMenuShowing

LayoutControl

LayoutControl.PopupMenuShowing See Context Menu to learn more.

VGridControl, PropertyGridControl

VGridControlBase.PopupMenuShowing

DocumentManager

BaseView.PopupMenuShowing

DockManager

DockManager.PopupMenuShowing

SpellChecker

SpellChecker.PopupMenuShowing

SchedulerControl

SchedulerControl.PopupMenuShowing

RichEditControl

RichEditControl.PopupMenuShowing

FilterControl

FilterControl.PopupMenuShowing

When an event is fired, the menu being customized is passed as the event's parameter. You can access it and add new items or remove existing items if required.

You can create a custom DXPopupMenu menu and manually display it for your control if required. The following sections describe how to customize built-in and custom menus, and how to display custom menus.

The following objects serve as DXPopupMenu elements. To set up a menu, you can add any of these items to a DXPopupMenu's Items collection (DXSubMenuItem.Items - this collection is inherited by the DXPopupMenu class from its ancestor).

Item Description
DXMenuItem A regular menu item. An item clicking invokes the event handler, which is assigned to the item's DXMenuItem.Click event.
DXMenuCheckItem A menu item that can be checked and unchecked. The check box displayed by the menu item reflects the current check state. Clicking a check menu item toggles the check state and fires the DXMenuCheckItem.CheckedChanged event.
DXSubMenuItem A submenu that can contain nested menu items. You can populate the submenu with nested items via the DXSubMenuItem.Items property. The DXSubMenuItem.BeforePopup event allows you to populate the menu dynamically, as the event is called when the DXSubMenuItem is going to be displayed on a screen.
DXButtonGroupItem A menu item that can contain a group of buttons. Use the item's inherited DXSubMenuItem.Items property to add buttons to a group.
DXEditMenuItem A menu item that allows you to embed an editor in a DXPopupMenu object. Use the DXEditMenuItem.Edit property to determine the editor's type. The DXEditMenuItem.EditValue property allows you to set the editor's initial value. To perform custom actions after the editor's value is changed, use the DXEditMenuItem.EditValueChanged event.

Display Modes

A DXPopupMenu object can be displayed as a regular menu, popup bar or RibbonMiniToolbar. To specify the menu's display mode, set the DXPopupMenu.MenuViewType property to the required enumeration value and use the corresponding menu manager.

When manually displaying a DXPopupMenu, a menu manager can be passed as the popup menu's IDXDropDownControl.Show method. For built-in menus in DevExpress controls, you can specify a menu manager via a control's MenuManager property.

The following menu managers are available.

  • The SkinMenuManager is capable of displaying a DXPopupMenu as a regular menu.

    DXPopupMenu-MenuViewType-Menu.png

    NOTE

    DXEditMenuItem objects are not supported by the SkinMenuManager. These items, which are used to embed in-place editors into popup controls, are presented only in text (without edit boxes). A DXButtonGroupItem object, which is used to present a set of linked buttons, is displayed as a sub-menu by the SkinMenuManager.

    
    // Display a DXPopupMenu as a regular menu
    UserLookAndFeel lf = UserLookAndFeel.Default;
    Control parentControl = this;
    Point pt;
    DXPopupMenu dxPopupMenu = new DXPopupMenu();
    //...
    dxPopupMenu.MenuViewType = MenuViewType.Menu;
    dxPopupMenu.ShowPopup(parentControl, pt);
    //or
    ((IDXDropDownControl)dxPopupMenu).Show(new SkinMenuManager(lf), parentControl, pt);
    
  • The BarManager is capable of displaying DXPopupMenu as a popup bar.

    DXPopupMenu-MenuViewType-Toolbar.png

    
    // Display a DXPopupMenu as a popup bar
    Control parentControl = this;
    Point pt;
    DXPopupMenu dxPopupMenu = new DXPopupMenu();
    //...
    dxPopupMenu.MenuViewType = MenuViewType.Toolbar;
    dxPopupMenu.ShowPopup(parentControl, pt);
    //or
    ((IDXDropDownControl)dxPopupMenu).Show(barManager1, parentControl, pt);
    
  • The RibbonControl is capable of displaying a DXPopupMenu as a RibbonMiniToolbar object.

    DXPopupMenu-MenuViewType-RibbonMiniToolbar.png

    
    // Display a DXPopupMenu as a RibbonMiniToolbar
    Control parentControl = this;
    Point pt;
    DXPopupMenu dxPopupMenu = new DXPopupMenu();
    //...
    dxPopupMenu.MenuViewType = MenuViewType.RibbonMiniToolbar;
    dxPopupMenu.ShowPopup(parentControl, pt);
    //or
    ((IDXDropDownControl)dxPopupMenu).Show(RibbonControl1, parentControl, pt);
    

Miscellaneous

A number of members affect the DXPopupMenu's look:

Examples

See Also