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

Custom Context Menus

  • 2 minutes to read

You can use the TreeList.PopupMenuShowing event to display custom menus when a user right-clicks a specific tree list element.

Common concepts for custom context menus are listed in the following help topic: Custom Context Menus.

#Example

The following code sample invokes a custom context menu when a user right-clicks a column header:

WinForms TreeList - Custom Column Context Menu

  1. Add a BarManager to the form and create a custom PopupMenu as demonstrated in the following help topic: Popup Menus:

    WinForms Popup Menu Designer

  2. Handle the TreeList.PopupMenuShowing event and call the e.ShowCustomMenu method to display your custom menu instead of the default menu.

void TreeList1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e) {
    if (e.MenuType == TreeListMenuType.Column) {
        popupMenu_Column.Tag = e.HitInfo;
        popupMenu_Column.MenuCaption = $"{e.HitInfo.Column}";

        e.ShowCustomMenu(popupMenu_Column);
    }
}
TreeListHitInfo GetHitInfo(BarItemLink link) {
    PopupMenu menu = link.LinkedObject as PopupMenu;
    return menu.Tag as TreeListHitInfo;
}
void barButtonItem_Filter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
    TreeListHitInfo info = GetHitInfo(e.Link);
    info.Column.TreeList.ShowFilterEditor(info.Column);
}

void barButtonItem_ColumnChooser_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
    TreeListHitInfo info = GetHitInfo(e.Link);
    info.Column.TreeList.ShowCustomization();
}
See Also