Skip to main content

TreeList.TreeListMenuItemClick Event

Provides the ability to perform custom handling of a context menu item click.

Namespace: DevExpress.XtraTreeList

Assembly: DevExpress.XtraTreeList.v23.2.dll

NuGet Packages: DevExpress.Win.Navigation, DevExpress.Win.TreeList

Declaration

[DXCategory("Behavior")]
public event TreeListMenuItemClickEventHandler TreeListMenuItemClick

Event Data

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

Property Description
AutoFilterCondition Returns the clicked Automatic Filtering Row condition.
Column Gets the column against whose header or footer the context menu has been activated.
Handled Gets or sets a value indicating whether default menu item click processing is prohibited.
IsFooter Gets whether an item in the footer summary’s context menu has been clicked.
MenuItem Gets the clicked menu item.
MenuType Gets the type of menu whose item has been clicked.
SummaryFormat Gets or sets the format of summary value displayed for the column.
SummaryType Gets or sets the summary type which is about to be applied to the column.

Remarks

The TreeListMenuItemClick event fires immediately after a context menu item has been clicked and before this click has been processed. It enables you to perform additional processing for a menu item click. For instance, it can be used to apply custom formatting to summary values when summary type is changed via a context menu.

There are three kinds of context menus provided by the TreeList control. Use the TreeList.OptionsMenu property to control the availability of menus to users.

Example

The following sample code changes the behavior of the Sort Ascending and Sort Descending items of the column header menu. These items no longer clear previously applied sorting. End-users can easily sort nodes by multiple columns.

In the example, the TreeList.TreeListMenuItemClick event is handled to clear the existing sorting, before the column values are sorted.

using DevExpress.XtraTreeList.Columns;
using DevExpress.XtraTreeList;
//...
private void treeList1_TreeListMenuItemClick(object sender, TreeListMenuItemClickEventArgs e) {
   if(e.IsFooter) return;
   TreeList tl = (sender as TreeList);
   if(e.MenuItem.Caption == "Sort Ascending" || e.MenuItem.Caption == "Sort Descending") {
      tl.ClearSorting();
      if(e.MenuItem.Caption == "Sort Ascending") 
         e.Column.SortOrder = SortOrder.Ascending;
      else 
         e.Column.SortOrder = SortOrder.Descending;
      e.Handled = true;
   }
}
See Also