How to: Customize and Hide the Popup Menu
- 3 minutes to read
#Customize the Pop-up Menu
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 Command
The RichEditMenuType enumeration lists all available context menu types. The following sample modifies the RichEditMenuType.TableCell menu, invoked by right-clicking the table cell.
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);
}
}
#Customize AI-Related Menu Items
Handle the PopupMenuShowing
event in code after the InitializeComponents
method call to obtain and customize the AI Assistant item:
public Form1() {
InitializeComponent();
this.richEditControl1.PopupMenuShowing += richEditControl1_PopupMenuShowing;
}
private void richEditControl1_PopupMenuShowing(object sender, DevExpress.XtraRichEdit.PopupMenuShowingEventArgs e) {
var item = e.Menu.Items[AIIntegrationLocalizer.GetString(AIIntegrationStringId.MenuItemAIAssistant)];
if (item != null) {
item.Caption = "My AI Helper";
item.ImageOptions.SvgImage = this.IconOptions.SvgImage;
}
}
#Hide the Context Menu
Set the RichEditBehaviorOptions.ShowPopupMenu property to restrict showing the context menu, as shown below: