Back to Devexpress

How to: Display DXPopupMenu as a Regular Menu, Popup Bar or RibbonMiniToolbar

windowsforms-10381-common-features-menus-how-to-display-dxpopupmenu-as-a-regular-menu-popup-bar-or-ribbonminitoolbar.md

latest14.2 KB
Original Source

How to: Display DXPopupMenu as a Regular Menu, Popup Bar or RibbonMiniToolbar

  • Nov 13, 2018
  • 5 minutes to read

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