- 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.
Popup Menus in DevExpress .NET controls
You can customize these control menus via corresponding events.
Menu Customization Event
See Popup Menus to learn more.
See Customize the Standard Context Menus to learn more
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).
|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.|
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.
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);
// 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);
// 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);
A number of members affect the DXPopupMenu's look:
- The inherited IDXDropDownControl.Show method displays a popup menu. You do not need to use this method to open the DevExpress Controls' built-in menus, as these menus are automatically displayed on a control's right click.
- The DXPopupMenu.HidePopup method hides a popup menu.
- The DXPopupMenu.CloseUp event fires after the menu has been closed.
- The DXPopupMenu.Alignment property determines a menu's alignment relative to the mouse cursor. This property is supported only when the DXPopupMenu is displayed as a RibbonMiniToolbar object.
- How to: Implement Custom Menu in XtraGrid Control
- How to: Add DXButtonGroupItem to DXPopupMenu and Display Menu as RibbonMiniToolbar
- How to: Add DXEditMenuItem to DXPopupMenu and Display Menu as Toolbar
- How to: Display DXPopupMenu as a Regular Menu, Popup Bar or RibbonMiniToolbar