windowsforms-devexpress-dot-utils-dot-menu.md
A base class for popup menus in DevExpress .NET controls.
Namespace : DevExpress.Utils.Menu
Assembly : DevExpress.Utils.v25.2.dll
NuGet Packages : DevExpress.Utils, DevExpress.Wpf.Core
public class DXPopupMenu :
DXSubMenuItem,
IDXDropDownControl,
IOptionsMultiColumnOwner
Public Class DXPopupMenu
Inherits DXSubMenuItem
Implements IDXDropDownControl,
IOptionsMultiColumnOwner
The following members return DXPopupMenu objects:
Many DevExpress .NET controls provide support for context menus. They provide built-in context menus for various visual elements and allow you to create custom menus or extend existing ones. Menus in these controls are represented by the DXPopupMenu class descendants. Menu items are represented by the DXMenuItem, DXMenuCheckItem, DXSubMenuItem, DXButtonGroupItem and DXEditMenuItem objects. See the following help topic to learn how to customize these menus and their items: Popup Menu Customization Settings.
A DXPopupMenu can be displayed as a regular menu, popup bar or RibbonMiniToolbar. To specify the menu’s display mode, use the DXPopupMenu.MenuViewType property. To display the menu, use the DXPopupMenu.ShowPopup or IDXDropDownControl.Show methods.
// 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);
This example shows how to display DXPopupMenu as a regular menu, popup bar or RibbonMiniToolbar. To change a menu's display mode, the MenuViewType property is used.To display DXPopupMenu as a popup bar, you need to set the MenuViewType property to Toolbar and also pass a BarManager object to the DXPopupMenu.Show method. Similarly, to display DXPopupMenu as RibbonMiniToolbar, you need to set the MenuViewType property to Toolbar and also pass a RibbonControl object to the DXPopupMenu.Show method.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.Utils.Menu;
using DevExpress.XtraEditors.Repository;
namespace DXPopupMenu_DisplayMode {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
InitPopupMenu();
}
protected virtual void InitPopupMenu() {
RepositoryItemComboBox riEditComboBox = new RepositoryItemComboBox();
riEditComboBox.Items.Add("item1");
riEditComboBox.Items.Add("item2");
riEditComboBox.Items.Add("item3");
riEditComboBox.Items.Add("item4");
riEditComboBox.Items.Add("item5");
RepositoryItemDateEdit riDateEdit = new RepositoryItemDateEdit();
menu = new DXPopupMenu();
menu.Items.Add(new DXMenuItem("Cut", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Cut_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Cut_32x32, null));
menu.Items.Add(new DXMenuItem("Copy", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Copy_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Copy_32x32, null));
menu.Items.Add(new DXMenuItem("Paste", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Paste_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Paste_32x32, null));
menu.Items.Add(new DXEditMenuItem("ComboBox", riEditComboBox, null, null, null, 100, -1));
menu.Items.Add(new DXEditMenuItem("DateEdit", riDateEdit, null, null, null, 100, -1));
DXButtonGroupItem group1 = new DXButtonGroupItem();
group1.Caption = "Button Group 1";
group1.Items.Add(new DXMenuItem("Open", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Open_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Open_32x32, null));
group1.Items.Add(new DXMenuItem("Save", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Save_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Save_32x32, null));
group1.Items.Add(new DXMenuItem("Save All", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.SaveAll_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.SaveAll_32x32, null));
DXButtonGroupItem group2 = new DXButtonGroupItem();
group2.Caption = "Button Group 2";
group2.Items.Add(new DXMenuItem("Edit", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Edit_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Edit_32x32, null));
group2.Items.Add(new DXMenuItem("Delete", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Delete_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Delete_32x32, null));
group2.Items.Add(new DXMenuItem("Print", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Print_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Print_32x32, null));
DXButtonGroupItem group3 = new DXButtonGroupItem();
group3.Caption = "Button Group 3";
group3.Items.Add(new DXMenuItem("Close", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Close_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Close_32x32, null));
group3.Items.Add(new DXMenuItem("Delete", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Delete_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Delete_32x32, null));
menu.Items.Add(group1);
menu.Items.Add(group2);
menu.Items.Add(group3);
}
void OnItemClick(object sender, EventArgs e) { }
DXPopupMenu menu;
private void btnDisplayAsRegularMenu_Click(object sender, EventArgs e) {
SimpleForm form = new SimpleForm();
form.PopupMenu = menu;
form.Show();
}
private void btnDisplayAsPopupBar_Click(object sender, EventArgs e) {
BarsForm form = new BarsForm();
form.PopupMenu = menu;
form.Show();
}
private void btnDisplayAsRibbonMiniToolbar_Click(object sender, EventArgs e) {
RibbonForm1 form = new RibbonForm1();
form.PopupMenu = menu;
form.Show();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.Utils.Menu;
using DevExpress.LookAndFeel.Design;
namespace DXPopupMenu_DisplayMode {
public partial class SimpleForm : Form {
public SimpleForm() {
InitializeComponent();
}
public DXPopupMenu PopupMenu;
protected override void OnMouseUp(MouseEventArgs e) {
if(e.Button == MouseButtons.Right) {
((IDXDropDownControl)PopupMenu).Show(new SkinMenuManager(UserLookAndFeelDefault.Default), this, e.Location);
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars.Ribbon;
using DevExpress.Utils.Menu;
namespace DXPopupMenu_DisplayMode {
public partial class RibbonForm1 : RibbonForm {
public RibbonForm1() {
InitializeComponent();
}
public DXPopupMenu PopupMenu;
protected override void OnMouseUp(MouseEventArgs e) {
if(e.Button == MouseButtons.Right) {
PopupMenu.MenuViewType = MenuViewType.RibbonMiniToolbar;
((IDXDropDownControl)PopupMenu).Show(ribbonControl1, this, e.Location);
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.Utils.Menu;
namespace DXPopupMenu_DisplayMode {
public partial class BarsForm : Form {
public BarsForm() {
InitializeComponent();
}
public DXPopupMenu PopupMenu;
protected override void OnMouseUp(MouseEventArgs e) {
if(e.Button == MouseButtons.Right) {
PopupMenu.MenuViewType = MenuViewType.Toolbar;
((IDXDropDownControl)PopupMenu).Show(barManager1, this, e.Location);
}
}
}
}
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu
Imports DevExpress.LookAndFeel.Design
Namespace DXPopupMenu_DisplayMode
Partial Public Class SimpleForm
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Public PopupMenu As DXPopupMenu
Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
If e.Button = MouseButtons.Right Then
CType(PopupMenu, IDXDropDownControl).Show(New SkinMenuManager(UserLookAndFeelDefault.Default), Me, e.Location)
End If
End Sub
End Class
End Namespace
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu
Imports DevExpress.XtraEditors.Repository
Namespace DXPopupMenu_DisplayMode
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
InitPopupMenu()
End Sub
Protected Overridable Sub InitPopupMenu()
Dim riEditComboBox As New RepositoryItemComboBox()
riEditComboBox.Items.Add("item1")
riEditComboBox.Items.Add("item2")
riEditComboBox.Items.Add("item3")
riEditComboBox.Items.Add("item4")
riEditComboBox.Items.Add("item5")
Dim riDateEdit As New RepositoryItemDateEdit()
menu = New DXPopupMenu()
menu.Items.Add(New DXMenuItem("Cut", New EventHandler(AddressOf OnItemClick), My.Resources.Cut_16x16, Nothing, My.Resources.Cut_32x32, Nothing))
menu.Items.Add(New DXMenuItem("Copy", New EventHandler(AddressOf OnItemClick), My.Resources.Copy_16x16, Nothing, My.Resources.Copy_32x32, Nothing))
menu.Items.Add(New DXMenuItem("Paste", New EventHandler(AddressOf OnItemClick), My.Resources.Paste_16x16, Nothing, My.Resources.Paste_32x32, Nothing))
menu.Items.Add(New DXEditMenuItem("ComboBox", riEditComboBox, Nothing, Nothing, Nothing, 100, -1))
menu.Items.Add(New DXEditMenuItem("DateEdit", riDateEdit, Nothing, Nothing, Nothing, 100, -1))
Dim group1 As New DXButtonGroupItem()
group1.Caption = "Button Group 1"
group1.Items.Add(New DXMenuItem("Open", New EventHandler(AddressOf OnItemClick), My.Resources.Open_16x16, Nothing, My.Resources.Open_32x32, Nothing))
group1.Items.Add(New DXMenuItem("Save", New EventHandler(AddressOf OnItemClick), My.Resources.Save_16x16, Nothing, My.Resources.Save_32x32, Nothing))
group1.Items.Add(New DXMenuItem("Save All", New EventHandler(AddressOf OnItemClick), My.Resources.SaveAll_16x16, Nothing, My.Resources.SaveAll_32x32, Nothing))
Dim group2 As New DXButtonGroupItem()
group2.Caption = "Button Group 2"
group2.Items.Add(New DXMenuItem("Edit", New EventHandler(AddressOf OnItemClick), My.Resources.Edit_16x16, Nothing, My.Resources.Edit_32x32, Nothing))
group2.Items.Add(New DXMenuItem("Delete", New EventHandler(AddressOf OnItemClick), My.Resources.Delete_16x16, Nothing, My.Resources.Delete_32x32, Nothing))
group2.Items.Add(New DXMenuItem("Print", New EventHandler(AddressOf OnItemClick), My.Resources.Print_16x16, Nothing, My.Resources.Print_32x32, Nothing))
Dim group3 As New DXButtonGroupItem()
group3.Caption = "Button Group 3"
group3.Items.Add(New DXMenuItem("Close", New EventHandler(AddressOf OnItemClick), My.Resources.Close_16x16, Nothing, My.Resources.Close_32x32, Nothing))
group3.Items.Add(New DXMenuItem("Delete", New EventHandler(AddressOf OnItemClick), My.Resources.Delete_16x16, Nothing, My.Resources.Delete_32x32, Nothing))
menu.Items.Add(group1)
menu.Items.Add(group2)
menu.Items.Add(group3)
End Sub
Private Sub OnItemClick(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Private menu As DXPopupMenu
Private Sub btnDisplayAsRegularMenu_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDisplayAsRegularMenu.Click
Dim form As New SimpleForm()
form.PopupMenu = menu
form.Show()
End Sub
Private Sub btnDisplayAsPopupBar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDisplayAsPopupBar.Click
Dim form As New BarsForm()
form.PopupMenu = menu
form.Show()
End Sub
Private Sub btnDisplayAsRibbonMiniToolbar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDisplayAsRibbonMiniToolbar.Click
Dim form As New RibbonForm1()
form.PopupMenu = menu
form.Show()
End Sub
End Class
End Namespace
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu
Namespace DXPopupMenu_DisplayMode
Partial Public Class BarsForm
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Public PopupMenu As DXPopupMenu
Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
If e.Button = MouseButtons.Right Then
PopupMenu.MenuViewType = MenuViewType.Toolbar
CType(PopupMenu, IDXDropDownControl).Show(barManager1, Me, e.Location)
End If
End Sub
End Class
End Namespace
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.Utils.Menu
Namespace DXPopupMenu_DisplayMode
Partial Public Class RibbonForm1
Inherits RibbonForm
Public Sub New()
InitializeComponent()
End Sub
Public PopupMenu As DXPopupMenu
Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
If e.Button = MouseButtons.Right Then
PopupMenu.MenuViewType = MenuViewType.RibbonMiniToolbar
CType(PopupMenu, IDXDropDownControl).Show(ribbonControl1, Me, e.Location)
End If
End Sub
End Class
End Namespace
Object DXMenuItem DXSubMenuItem DXPopupMenu CommandPopupMenu<T>
See Also