Skip to main content

PopupMenuShowingEventArgs.Menu Property

Gets or sets the popup menu that is about to be displayed.

Namespace: DevExpress.XtraGrid.Views.Grid

Assembly: DevExpress.XtraGrid.v24.1.dll

NuGet Packages: DevExpress.Win.Grid, DevExpress.Win.Navigation

Declaration

public GridViewMenu Menu { get; set; }

Property Value

Type Description
DevExpress.XtraGrid.Menu.GridViewMenu

The menu that is about to be displayed.

Remarks

The Menu property allows you to add, remove, and customize items in the currently processed popup menu. To identify the type of the menu, use PopupMenuShowingEventArgs.MenuType.

The Data Grid does not display empty popup menus. Thus, if you remove all items from the menu, this menu will not be displayed after your PopupMenuShowing event handler is complete.

When you right-click within a row or group row, the Data Grid creates an empty menu and fires the PopupMenuShowing event (the event’s PopupMenuShowingEventArgs.MenuType parameter is set to Row). If you leave this menu intact (empty), it will not be displayed. To add new menu items to this and other menus, use the Menu.Items.Add method. See an example below.

To access the existing menu items, you can iterate through the Menu.Items collection, or use the Menu.Find and Menu.FindAll methods. To hide or remove certain menu items, use the Menu.Hide and Menu.Remove methods. When searching for a target menu item, you need to know the menu item identifier, which you can find by reading the item’s DXMenuItem.Tag property. You can also see the Menu Item Identifiers section below to learn the available menu item identifiers for the built-in menus.

The menu items can be the following objects:

Use these objects’ settings to change item captions, images, visibility, enabled state, etc.

The DXMenuItem.Tag properties store the menu item identifiers for the default menu items.

When you create a custom menu item, use the item’s DXMenuItem.Tag property to store any custom data with which you may need to identify the item or process the item’s click event.

The four tables below show the menu item identifiers (contents of the DXMenuItem.Tag properties) in Data Grid’s built-in menus.

Column Header Menu (DevExpress.XtraGrid.Menu.GridViewColumnMenu)

VisualElems_GridView_ColumnHeaderContextMenu

When handling the PopupMenuShowing and GridMenuItemClick events, you can identify this menu type using the e.MenuType event parameter, which is set to GridMenuType.Column

The Tag properties of the items in this menu can be the following objects:

  • DevExpress.XtraGrid.Localization.GridStringId

  • DevExpress.XtraEditors.Controls.StringId

  • GridGroupSummaryItem

  • DevExpress.XtraGrid.ColumnGroupInterval

Menu Item

Tag

Full Expand

DevExpress.XtraGrid.Localization.GridStringId.MenuGroupPanelFullExpand

Full Collapse

DevExpress.XtraGrid.Localization.GridStringId.MenuGroupPanelFullCollapse

Sort Ascending

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnSortAscending

Sort Descending

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnSortDescending

Sort by Summary (sub-menu)

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnSortGroupBySummaryMenu

The Tag properties of this submenu’s items contain GridGroupSummaryItem objects, which identify corresponding summary functions.

Group By This Column

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnGroup

UnGroup

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnUnGroup

Hide Group By Box

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnGroupBox

Show Group By Box

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnGroupBox

Split

DevExpress.XtraGrid.Localization.GridStringId.MenuShowSplitItem

Remove Split

DevExpress.XtraGrid.Localization.GridStringId.MenuHideSplitItem

Group Interval (sub-menu)

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnGroupIntervalMenu

    Day

    DevExpress.XtraGrid.ColumnGroupInterval.Default

    Month

    DevExpress.XtraGrid.ColumnGroupInterval.DateMonth

    Year

    DevExpress.XtraGrid.ColumnGroupInterval.DateYear

    Smart

    DevExpress.XtraGrid.ColumnGroupInterval.DateRange

Group Summary Editor…

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnGroupSummaryEditor

Hide This Column

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnRemoveColumn

Column Chooser

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnColumnCustomization

Best Fit

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnBestFit

Best Fit (all columns)

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnBestFitAllColumns

Filter Editor…

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnFilterEditor

Show Find Panel

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnFindFilterShow

Hide Find Panel

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnFindFilterHide

Show Auto Filter Row

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnAutoFilterRowShow

Hide Auto Filter Row

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnAutoFilterRowHide

Conditional Formatting (sub-menu)

DevExpress.XtraGrid.Localization.GridStringId.MenuColumnConditionalFormatting

    Highlight Cell Rules (sub-menu)

    DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemHighlightCellRules

        Greater Than…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemGreaterThan

        Less Than…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemLessThan

        Between…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemBetween

        Equal To…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemEqualTo

        Text that Contains…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemTextThatContains

        A Date Occurring…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemDateOccurring

        Custom Condition…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemCustomCondition

    Top/Bottom Rules (sub-menu)

    DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemTopBottomRules

        Top 10 Items…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemTop10Items

        Bottom 10 Items…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemBottom10Items

    Unique/Duplicate Rules (sub-menu)

    DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemUniqueDuplicateRules

        Unique Values…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemUnique

        Duplicate Values…

        DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemDuplicate

    Manage Rules…

    DevExpress.XtraEditors.Controls.StringId.FormatRuleMenuItemManageRules

Show Footer

DevExpress.XtraGrid.Localization.GridStringId.MenuFooterShow

Hide Footer

DevExpress.XtraGrid.Localization.GridStringId.MenuFooterHide

Group Panel Menu (DevExpress.XtraGrid.Menu.GridViewGroupPanelMenu)

GroupPanel - Context menu1

When handling the PopupMenuShowing and GridMenuItemClick events, you can identify this menu type using the e.MenuType event parameter, which is set to GridMenuType.Group

The Tag properties of the items in this menu contain DevExpress.XtraGrid.Localization.GridStringId enumeration values.

Menu Item Tag
Full Expand DevExpress.XtraGrid.Localization.GridStringId.MenuGroupPanelFullExpand
Full Collapse DevExpress.XtraGrid.Localization.GridStringId.MenuGroupPanelFullCollapse
Clear Grouping DevExpress.XtraGrid.Localization.GridStringId.MenuGroupPanelClearGrouping
Hide Group By Box DevExpress.XtraGrid.Localization.GridStringId.MenuColumnGroupBox
Split DevExpress.XtraGrid.Localization.GridStringId.MenuShowSplitItem
Remove Split DevExpress.XtraGrid.Localization.GridStringId.MenuHideSplitItem

Important

The e.Menu.Remove method (PopupMenuShowing event) accepts DevExpress.XtraGrid.Localization.GridStringId as a parameter. The method does not work for menu items with dynamic names (for example, “Group Panel Hide”, “Group Panel Show”).

// This code has no effect.
e.Menu.Remove(DevExpress.XtraGrid.Localization.GridStringId.MenuGroupPanelHide);
e.Menu.Remove(DevExpress.XtraGrid.Localization.GridStringId.MenuGroupPanelShow);
// This code works as expected.
e.Menu.Remove(DevExpress.XtraGrid.Localization.GridStringId.MenuColumnGroupBox);

Summary Menu (DevExpress.XtraGrid.Menu.GridViewFooterMenu)

VisualElems_GridView_FooterContextMenu

When handling the PopupMenuShowing and GridMenuItemClick events, you can identify this menu type using the e.MenuType event parameter, which is set to GridMenuType.Summary

The Tag properties of the items in this menu contain DevExpress.XtraGrid.Localization.GridStringId enumeration values.

Menu Item Tag
Add New Summary (sub-menu) DevExpress.XtraGrid.Localization.GridStringId.MenuFooterAddSummaryItem
Sum DevExpress.XtraGrid.Localization.GridStringId.MenuFooterSum
Min DevExpress.XtraGrid.Localization.GridStringId.MenuFooterMin
Max DevExpress.XtraGrid.Localization.GridStringId.MenuFooterMax
Count DevExpress.XtraGrid.Localization.GridStringId.MenuFooterCount
Average DevExpress.XtraGrid.Localization.GridStringId.MenuFooterAverage
None DevExpress.XtraGrid.Localization.GridStringId.MenuFooterNone
Clear Summary Items DevExpress.XtraGrid.Localization.GridStringId.MenuFooterClearSummaryItems

Auto Filter Row Menu

grid-autofiltermenu.png

When handling the PopupMenuShowing and GridMenuItemClick events, you can identify this menu type using the e.MenuType event parameter, which is set to GridMenuType.AutoFilter.

The Tag properties of the items in this menu contain DevExpress.XtraEditors.ColumnAutoFilterCondition enumeration values.

Menu Item Tag
Clear Filter null
Equals DevExpress.XtraEditors.ColumnAutoFilterCondition.Equals
Does not equal DevExpress.XtraEditors.ColumnAutoFilterCondition.DoesNotEqual
Contains DevExpress.XtraEditors.ColumnAutoFilterCondition.Contains
Does not contain DevExpress.XtraEditors.ColumnAutoFilterCondition.DoesNotContain
Is like DevExpress.XtraEditors.ColumnAutoFilterCondition.Like
Is not like DevExpress.XtraEditors.ColumnAutoFilterCondition.NotLike
Begins with DevExpress.XtraEditors.ColumnAutoFilterCondition.BeginsWith
Ends with DevExpress.XtraEditors.ColumnAutoFilterCondition.EndsWith
Is greater than DevExpress.XtraEditors.ColumnAutoFilterCondition.Greater
Is greater than or equal to DevExpress.XtraEditors.ColumnAutoFilterCondition.GreaterOrEqual
Is less than DevExpress.XtraEditors.ColumnAutoFilterCondition.Less
Is less than or equal to DevExpress.XtraEditors.ColumnAutoFilterCondition.LessOrEqual

Example

The following code sample creates a menu item that fixes the column to the left. This item is added to the column header’s context menu next to the Hide This Column item:

WinForms Grid - Add Items to Context Menus

void gridView1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e) {
    if (e.MenuType == GridMenuType.Column) {
        DXMenuItem item = new DXMenuItem("Fix/Unfix This Column", (s, args) => {
            GridColumn column = (s as DXMenuItem).Tag as GridColumn;
            if (column.Fixed == FixedStyle.Left)
                column.Fixed = FixedStyle.None;
            else column.Fixed = FixedStyle.Left;
        });
        item.Tag = e.HitInfo.Column;
        int index = e.Menu.Items.IndexOf(e.Menu.Find(GridStringId.MenuColumnRemoveColumn));
        e.Menu.Items.Insert(index + 1, item);
    }
}

Refer to the following help topic for more information: Modify Built-In Context Menus.

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the Menu property.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also