New to Telerik UI for WinForms? Download free 30-day trial

Modifying the Default Context Menu

The default RadGridView context menu can be customized in the ContextMenuOpening event handler.

Removing an item from default RadGridView context menu:

In order to remove an item, you need to make a loop iterating the e.ContextMenu.Items and check if the e.ContextMenu.Items[index].Text is equal to the text of the menu item that you want to hide. If so, just set the Visibility of the menu item to Collapsed:

void radGridView1_ContextMenuOpening(object sender, Telerik.WinControls.UI.ContextMenuOpeningEventArgs e)
{
    for (int i = 0; i < e.ContextMenu.Items.Count; i++)
    {
        if (e.ContextMenu.Items[i].Text == "Conditional Formatting")
        {
            // hide the Conditional Formatting option from the header row context menu
            e.ContextMenu.Items[i].Visibility = Telerik.WinControls.ElementVisibility.Collapsed;
            // hide the separator below the CF option
            e.ContextMenu.Items[i + 1].Visibility = Telerik.WinControls.ElementVisibility.Collapsed;
        }
    }
}

Private Sub RadGridView1_ContextMenuOpening(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.ContextMenuOpeningEventArgs) Handles RadGridView1.ContextMenuOpening
    Dim i As Integer = 0
    Do While i < e.ContextMenu.Items.Count
        If e.ContextMenu.Items(i).Text = "Conditional Formatting" Then
            ' hide the Conditional Formatting option from the header row context menu
            e.ContextMenu.Items(i).Visibility = Telerik.WinControls.ElementVisibility.Collapsed
            ' hide the separator below the CF option
            e.ContextMenu.Items(i + 1).Visibility = Telerik.WinControls.ElementVisibility.Collapsed
        End If
        i += 1
    Loop
End Sub

If your grid is localized you can get the item text from the localization provider - `if (e.ContextMenu.Items[i].Text == RadGridLocalizationProvider.CurrentProvider.GetLocalizedString(RadGridStringId.ConditionalFormattingMenuItem))'

Adding menu items to the default RadGridView context menu

In order to add custom menu items to the default context menu, you should create menu item instances in the ContextMenuOpening event handler and add them to the e.ContextMenu.Items:

void radGridView1_ContextMenuOpening1(object sender, Telerik.WinControls.UI.ContextMenuOpeningEventArgs e)
{
    RadMenuItem customMenuItem = new RadMenuItem();
    customMenuItem.Text = "Custom Data Operation";
    RadMenuSeparatorItem separator = new RadMenuSeparatorItem();
    e.ContextMenu.Items.Add(separator);
    e.ContextMenu.Items.Add(customMenuItem);
}

Private Sub RadGridView1_ContextMenuOpening1(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.ContextMenuOpeningEventArgs) Handles RadGridView1.ContextMenuOpening
    Dim customMenuItem As RadMenuItem = New RadMenuItem()
    customMenuItem.Text = "Custom Data Operation"
    Dim separator As RadMenuSeparatorItem = New RadMenuSeparatorItem()
    e.ContextMenu.Items.Add(separator)
    e.ContextMenu.Items.Add(customMenuItem)
End Sub

You can subscribe to the Click event of the newly added menu items and thus execute the desired action when a RadMenuItem is clicked.

The result of combining the approaches from this article is shown on the screenshot below:

WinForms RadGridView Modified Default ContextMenu

See Also

In this article