Skip to main content

VGridControlBase.ShowMenu Event


Use 'PopupMenuShowing' instead

Allows context menus for rows to be customized.

Namespace: DevExpress.XtraVerticalGrid

Assembly: DevExpress.XtraVerticalGrid.v22.2.dll

NuGet Package: DevExpress.Win.VerticalGrid


[Obsolete("Use 'PopupMenuShowing' instead", false)]
public event VGridControlMenuEventHandler ShowMenu

Event Data

The ShowMenu event's data class is DevExpress.XtraVerticalGrid.Events.VGridControlMenuEventArgs.


The ShowMenu event fires when right-clicking within a row, if the Grid.OptionsMenu.EnableContextMenu property is set to true (by default, it’s set to false).

By default, context menus for the VGridControl are empty, and they are not displayed. To create and display a context menu for this control, set the Grid.OptionsMenu.EnableContextMenu property to true, and then populate the menu via the ShowMenu event.

To enable the context menus for a PropertyGridControl, set the Grid.OptionsMenu.EnableContextMenu property to true. The context menu for this control contains the Reset command, allowing a property to be reset to the default value. You can handle the ShowMenu event to customize the context menu (add new items or remove existing items).

To paint context menus according to the current look and feel, use the control’s EditorContainer.MenuManager property.


This example shows how to add a command that toggles the Enabled property to a context menu.

using DevExpress.Utils.Menu;
using DevExpress.XtraVerticalGrid;
using DevExpress.XtraVerticalGrid.Rows;

propertyGridControl1.PopupMenuShowing += propertyGridControl1_PopupMenuShowing;
private void propertyGridControl1_PopupMenuShowing(object sender, DevExpress.XtraVerticalGrid.Events.PopupMenuShowingEventArgs e) {
    PropertyGridControl pg = sender as PropertyGridControl;
    VGridHitInfo hi = pg.CalcHitInfo(pg.PointToClient(Cursor.Position));
    if (hi.Row == null || hi.Row.Properties.FieldName != "Enabled") return;
    ToggleMenuItem.Tag = hi.Row;

DXMenuItem toggleMenuItem;
protected DXMenuItem ToggleMenuItem {
    get {
        if (toggleMenuItem == null) {
            DXMenuItem item = new DXMenuItem("Toggle");
            item.Click += item_Click;
            toggleMenuItem = item;
        return toggleMenuItem;
void item_Click(object sender, EventArgs e) {
    BaseRow row = (sender as DXMenuItem).Tag as BaseRow;
    bool cellValue = (bool)row.Grid.GetCellValue(row, 0);
    row.Grid.SetCellValue(row, 0, !cellValue);
See Also