DevExpress XtraTreeList控件设置多选模式
2021/8/25 23:36:13
本文主要是介绍DevExpress XtraTreeList控件设置多选模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、使用控件自带的功能
官方自带的Demo里面就有,在此仅列出常用的属性/方法/事件;
1、多选模式
(1)效果图(截取自官方Demo)
(2)涉及的属性/方法/事件
// 启用多选功能 treeList.OptionsSelection.MultiSelect = true; // 设置多选模式 treeList.OptionsSelection.MultiSelectMode = TreeListMultiSelectMode.CellSelect;
选中的节点可以通过treeList1.Selection获取。显然,这种方法对于有些用户是不太友好的,请看勾选功能。
2、勾选模式
(1)效果图(截取自官方Demo)
(2)涉及的属性/方法/事件
// 显示勾选框 treeList.OptionsView.ShowCheckBoxes = true; //设置勾选框样式(一般情况下只需要设置这一条属性就可以了) treeList1.OptionsView.CheckBoxStyle = DevExpress.XtraTreeList.DefaultNodeCheckBoxStyle.Check; //自定义不同节点勾选框样式 treeList.Nodes[0].ChildrenCheckBoxStyle = NodeCheckBoxStyle.Check; treeList.Nodes[1].Nodes[0].ChildrenCheckBoxStyle = NodeCheckBoxStyle.Radio; treeList.Nodes[1].Nodes[1].ChildrenCheckBoxStyle = NodeCheckBoxStyle.Radio; treeList.Nodes[1].Nodes[2].ChildrenCheckBoxStyle = NodeCheckBoxStyle.Radio; //获取勾选的节点 this.treeList.GetAllCheckedNodes(); //选中/取消选中节点及其子节点 e.Node.CheckAll(); e.Node.UncheckAll(); //允许有中间状态 this.treeList1.OptionsBehavior.AllowIndeterminateCheckState = true; //选中节点时,自动选中子节点 treeList1.OptionsBehavior.AllowRecursiveNodeChecking = true //选中节点前触发事件 this.treeList1.BeforeCheckNode //选中节点后触发事件 this.treeList1.AfterCheckNode
二、自定义勾选模式
官方自带的功能可以能满足大多数使用场景。但美中不足的是,在AllowRecursiveNodeChecking功能启用时,没有办法单独选中有子节点的节点。
下面的方法利用BeforeCheckNode事件,实现选中节点的各种姿势:
private void TreeList1_BeforeCheckNode(object sender, DevExpress.XtraTreeList.CheckNodeEventArgs e) { bool allChildNodeChecked = true; bool allChildNodeUnChecked = true; for (int i = 0; i < e.Node.Nodes.Count; i++) { if (e.Node.Nodes[i].CheckState == CheckState.Checked) allChildNodeUnChecked = false; if (e.Node.Nodes[i].CheckState == CheckState.Unchecked) allChildNodeChecked = false; } if(e.Node.CheckState==CheckState.Unchecked&&allChildNodeUnChecked) { e.Node.CheckState = CheckState.Checked; } else if(!allChildNodeChecked&&!allChildNodeUnChecked) { e.Node.CheckAll(); } else if(e.Node.CheckState==CheckState.Checked&&allChildNodeUnChecked) { e.Node.CheckAll(); } else if(e.Node.CheckState==CheckState.Checked&&allChildNodeChecked) { e.Node.UncheckAll(); } }
效果图:
这篇关于DevExpress XtraTreeList控件设置多选模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南