改变标准菜单项的行为
单击在 标准的上下文菜单 中的任何默认菜单项都会引发 TreeList.TreeListMenuItemClick 事件。 此事件允许取消默认的操作,或者提供您自己的处理。
在接管此事件时,需要把事件的 Handled 参数设置为 true 或 false。 把此参数设置为 true 指明此事件已处理,而不需要默认的处理。 如果 Handled 参数被设置为 false,则在事件处理程序完成之后立即执行默认的操作。
示例
下面的示例代码改变了 Sort Ascending 和 Sort Descending 菜单项 (属于 列标头菜单) 的行为。 在默认情况下,单击其中一个菜单项则根据相关联列中的取值对数据排序,而不清除之前应用的排序。 这样允许根据多个列实现排序。
在本示例中,为了在按照列的取值排序之前清除已有的排序,接管了 TreeList.TreeListMenuItemClick 事件。
C# | 复制代码 |
---|---|
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; } } |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.XtraTreeList.Columns Imports DevExpress.XtraTreeList '... Private Sub TreeList1_TreeListMenuItemClick(ByVal sender As Object, _ ByVal e As TreeListMenuItemClickEventArgs) Handles TreeList1.TreeListMenuItemClick If e.IsFooter Then Exit Sub If e.MenuItem.Caption = "Sort Ascending" Or e.MenuItem.Caption = "Sort Descending" Then sender.ClearSorting() If e.MenuItem.Caption = "Sort Ascending" Then e.Column.SortOrder = SortOrder.Ascending Else e.Column.SortOrder = SortOrder.Descending End If e.Handled = True End If End Sub |