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

How to: Customize a RibbonControl's Customization Menu

  • 2 minutes to read

The following example handles the RibbonControl.ShowCustomizationMenu event to customize the RibbonControl’s context menu.

The example hides the built-in “Add to Quick Access Toolbar” command, and adds a custom “About” command to the menu.

RibbonControl - Customized Context Menu

using DevExpress.XtraBars;
using DevExpress.XtraBars.Localization;

private void ribbonControl1_ShowCustomizationMenu(object sender, DevExpress.XtraBars.Ribbon.RibbonCustomizationMenuEventArgs e) {
    // Check if the context menu is invoked after a link is right-clicked.
    if (e.Link == null) return;
    // Locate and hide the "Add to Quick Access Toolbar" command in the context menu
    BarItemLink linkAddToQat = e.CustomizationMenu.ItemLinks.Where(link => link.Caption == BarLocalizer.Active.GetLocalizedString(BarString.RibbonToolbarAdd)).FirstOrDefault();
    linkAddToQat.Visible = false;

    // Check if a custom "About" command has already been created.
    BarItemLink menuAboutCommand = e.CustomizationMenu.ItemLinks.Where(link => link.Caption == "About").FirstOrDefault();
    // Add the "About" command.
    if (menuAboutCommand == null) {
        menuAboutCommand = e.CustomizationMenu.AddItem(GetAboutCommand());
        // Add a separator before the command.
        menuAboutCommand.BeginGroup = true;
    }
}

BarItem biAbout;
BarItem GetAboutCommand() {
    if (biAbout == null) {
        biAbout = new BarButtonItem();
        biAbout.Caption = "About";
        biAbout.ItemClick += new ItemClickEventHandler(biAbout_ItemClick);
        ribbonControl1.Items.Add(biAbout);
    }
    return biAbout;
}
// The method invoked when the "About" command is clicked.
void biAbout_ItemClick(object sender, ItemClickEventArgs e) {
    MessageBox.Show("About");
}