Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

RichEditControl.PopupMenuShowing Event

Occurs before a context (popup) menu is created for the control’s document every time a context menu is being invoked.

Namespace: DevExpress.XtraRichEdit

Assembly: DevExpress.XtraRichEdit.v24.2.dll

NuGet Package: DevExpress.Win.RichEdit

#Declaration

public event PopupMenuShowingEventHandler PopupMenuShowing

#Event Data

The PopupMenuShowing event's data class is PopupMenuShowingEventArgs. The following properties provide information specific to this event:

Property Description
Menu Gets or sets the popup (context) menu for which this event was raised.
MenuType Gets a visual element for which the popup menu is invoked.

#Remarks

Handle the PopupMenuShowing event to modify items in the context menu. The current context menu can be accessed via the PopupMenuShowingEventArgs.Menu property.

Tip

Handle the PopupMenuShowing event in code after the InitializeComponents method call to obtain and customize the AI Assistant items.

#Example

This example demonstrates how to handle the RichEditControl.PopupMenuShowing event to customize the RichEditControl‘s context menu. You can remove and disable the existing items, and add new ones using the RichEdit commands.

Note

The CommandPopupMenu<T>.EnableMenuItem method does not enable the context menu item if you set the corresponding command’s ICommandUIState.Enabled property to false.

The RichEditMenuType enumeration lists all available context menu types. The following sample modifies the RichEditMenuType.TableCell menu, invoked by right-clicking the table cell.

View Example

private void richEditControl_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
{
    if ((e.MenuType & RichEditMenuType.TableCell) != 0)
    {
        // Remove the "Paste" menu item:
        e.Menu.RemoveMenuItem(RichEditCommandId.PasteSelection);

        // Disable the "Hyperlink..." menu item:
        e.Menu.DisableMenuItem(RichEditCommandId.CreateHyperlink);

        // Create a RichEdit command, which inserts an inline picture into a document:
        IRichEditCommandFactoryService service = (IRichEditCommandFactoryService)richEditControl.GetService(typeof(IRichEditCommandFactoryService));
        RichEditCommand cmd = service.CreateCommand(RichEditCommandId.InsertPicture);

        //Create a menu item for the new command:
        RichEditMenuItemCommandWinAdapter menuItemCommandAdapter = new RichEditMenuItemCommandWinAdapter(cmd);
        RichEditMenuItem menuItem = (RichEditMenuItem)menuItemCommandAdapter.CreateMenuItem(DevExpress.Utils.Menu.DXMenuItemPriority.Normal);
        menuItem.BeginGroup = true;
        e.Menu.Items.Add(menuItem);

        // Insert a new item into the Richedit popup menu and handle its click event:
        RichEditMenuItem myItem = new RichEditMenuItem("Highlight Selection", new EventHandler(MyClickHandler));
        e.Menu.Items.Add(myItem);
    }
}
See Also