Back to Devexpress

DXPopupMenu Class

windowsforms-devexpress-dot-utils-dot-menu.md

latest19.0 KB
Original Source

DXPopupMenu Class

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

Declaration

csharp
public class DXPopupMenu :
    DXSubMenuItem,
    IDXDropDownControl,
    IOptionsMultiColumnOwner
vb
Public Class DXPopupMenu
    Inherits DXSubMenuItem
    Implements IDXDropDownControl,
               IOptionsMultiColumnOwner

The following members return DXPopupMenu objects:

Remarks

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.

Example 1

csharp
// 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);

Example 2

csharp
// 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);

Example 3

csharp
// 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);

Example

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.

csharp
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();
        }
    }
}
csharp
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);
            }
        }
    }
}
csharp
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);
            }
        }
    }
}
csharp
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);
            }
        }
    }
}
vb
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
vb
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
vb
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
vb
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

Implements

IDXDropDownControl

Inheritance

Object DXMenuItem DXSubMenuItem DXPopupMenu CommandPopupMenu<T>

ImageGalleryFilterMenu

PivotGridMenu

RichEditPopupMenu

SchedulerPopupMenu

See Also

DXPopupMenu Members

DXMenuCheckItem

DXMenuItem

DXSubMenuItem

Menus

DevExpress.Utils.Menu Namespace