把自定义菜单项添加到标准菜单中
要把自定义菜单项添加到 标准的上下文菜单,则接管 TreeList.ShowTreeListMenu 事件。 当接管此事件时,Menu 参数用于访问允许被扩展的菜单。
常规菜单项由 DXMenuItem 类表示,而复选菜单项由 DXMenuCheckItem 类表示。 可以使用任何这些类来创建自定义菜单项。 当创建菜单项时,需要把它与 Click 事件处理程序相关联。 如果最终用户选择了菜单项,则此事件处理程序将被调用。 如果必须把自定义信息到传递 Click 事件处理程序,则使用 DXMenuItem.Tag 属性。
示例
下面的示例演示了如何把一个自定义菜单项添加到标准的上下文菜单中,并且为此菜单项订阅了单击事件。 TreeList.ShowTreeListMenu 事件被接管,以便于把 Clear All 菜单项添加到 汇总脚注菜单 中。 单击此菜单项则取消所有树状列表列的汇总计算。
下面的插图展示了运行结果。
C# | 复制代码 |
---|---|
using DevExpress.Utils.Menu; using DevExpress.XtraTreeList; using DevExpress.XtraTreeList.Columns; //... private void treeList1_ShowTreeListMenu(object sender, DevExpress.XtraTreeList.TreeListMenuEventArgs e) { TreeListHitInfo hitInfo = treeList1.CalcHitInfo(e.Point); if(hitInfo.HitInfoType == HitInfoType.SummaryFooter) e.Menu.Items.Add(new DXMenuItem("Clear All", new EventHandler(this.clearAllMenuItemClick))); } private void clearAllMenuItemClick(object sender, EventArgs e) { foreach (TreeListColumn column in treeList1.Columns) column.SummaryFooter = SummaryItemType.None; } |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.Utils.Menu Imports DevExpress.XtraTreeList Imports DevExpress.XtraTreeList.Columns '... Private Sub TreeList1_ShowTreeListMenu(ByVal sender As Object, ByVal e As DevExpress.XtraTreeList.TreeListMenuEventArgs) Handles TreeList1.ShowTreeListMenu Dim HitInfo As TreeListHitInfo = TreeList1.CalcHitInfo(e.Point) If HitInfo.HitInfoType = HitInfoType.SummaryFooter Then e.Menu.Items.Add(New DXMenuItem("Clear All", AddressOf Me.clearAllMenuItemClick)) End If End Sub Private Sub clearAllMenuItemClick(ByVal sender As Object, ByVal e As EventArgs) Dim Column As TreeListColumn For Each Column In TreeList1.Columns Column.SummaryFooter = SummaryItemType.None Next End Sub |