博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dev TreeList 节点联动
阅读量:6916 次
发布时间:2019-06-27

本文共 2224 字,大约阅读时间需要 7 分钟。

1:正确方法

只需要设置属性即可  treeList1.OptionsBehavior.AllowRecursiveNodeChecking = true;

 

2:编程实现方法:

 

//1、选择某一节点时,该节点的子节点全部选择        //2、取消某一节点时,该节点的子节点全部取消选择        //3、某节点的子节点全部选择时,该节点选择        //4、某节点的子节点未全部选择时,该节点不选择        private void treeMenus_BeforeCheckNode(object sender, DevExpress.XtraTreeList.CheckNodeEventArgs e)        {            if (e.PrevState == CheckState.Checked)            {                e.State = CheckState.Unchecked;            }            else            {                e.State = CheckState.Checked;            }        }        private void treeMenus_AfterCheckNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e)        {            SetCheckedChildNodes(e.Node, e.Node.CheckState);            SetCheckedParentNodes(e.Node, e.Node.CheckState);        }        #endregion#region TreeList 操作共同        #region 设置子节点状态          private void SetCheckedChildNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check)        {            for (int i = 0; i < node.Nodes.Count; i++)            {                node.Nodes[i].CheckState = check;                SetCheckedChildNodes(node.Nodes[i], check);            }        }        #endregion        #region 设置父节点状态          private void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check)        {            if (node.ParentNode != null)            {                bool b = false;                CheckState state;                for (int i = 0; i < node.ParentNode.Nodes.Count; i++)                {                    state = (CheckState)node.ParentNode.Nodes[i].CheckState;                    if (!check.Equals(state))                    {                        b = !b;                        break;                    }                }                if (b)                {                    node.ParentNode.CheckState = CheckState.Indeterminate;                }                else                {                    node.ParentNode.CheckState = check;                }                SetCheckedParentNodes(node.ParentNode, check);            }        }        #endregion        #endregion

  

posted on
2017-06-29 11:44 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/volts0302/p/7093635.html

你可能感兴趣的文章
scrapy学习(一)
查看>>
storm的开发环境部署配置教程
查看>>
(转)Linux下Git入门基础
查看>>
了解DataTables
查看>>
python爬虫 urllib2
查看>>
菜鸟入门级:SQL注入***
查看>>
JAVA7新特性
查看>>
我的友情链接
查看>>
安装vsftp
查看>>
数据库同步产品PAC市场定位
查看>>
Linux 用户管理
查看>>
搭建open***
查看>>
哪个会话引起阻塞并且它们在运行什么
查看>>
各个版本的金蝶kis的区别
查看>>
JS闭包的理解
查看>>
Linux下查看操作系统信息、内存情况及cpu信息
查看>>
影像拍攝及呈現能力的提升
查看>>
Windows Server 2012 Hyper-V新特性(11)
查看>>
Android快速开发系列 10个常用工具类
查看>>
我的友情链接
查看>>