关闭

TreeList带有CheckBox

399人阅读 评论(0) 收藏 举报
分类:

转载链接:http://blog.sina.com.cn/s/blog_53b58e7c0101aclk.html

树形控件是使用频率很高的一种控件。对于属性控件往往需要下面两个功能

1.TreeList带有CheckBox,并且节点要有三种状态(所有的子节点都选中,所有的子节点都没选择,一部分子节点选中)。使用 DevXpress的TreeList控件很容易实现这一功能。

设置TreeList.OptionsView.ShowCheckBoxes = true            //是否显示CheckBox

设置TreeList.OptionsBehavior.AllowIndeterminateCheckState = true;         //设置节点是否有中间状态,即一部分子节点选中,一部分子节点没有选中

设置这两个属性之后就实现了TreeList带有CheckBox,并且节点有三种状态。

2.选中父节点或者子节点相互影响的功能,如选择父节点选择所有子节点。绑定TreeList的两个事件AfterCheckNode和 BeforeCheckNode

实现功能的代码如下:

        private void treeList1_AfterCheckNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e)
        {
            SetCheckedChildNodes(e.Node, e.Node.CheckState);
            SetCheckedParentNodes(e.Node, e.Node.CheckState);

        }

        private void treeList1_BeforeCheckNode(object sender, DevExpress.XtraTreeList.CheckNodeEventArgs e)
        {
            e.State = (e.PrevState == CheckState.Checked ? CheckState.Unchecked : CheckState.Checked);
        }

        ///
        /// 设置子节点的状态
        ///
        ///
        ///
        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);
            }
        }

        ///
        /// 设置父节点的状态
        ///
        ///
        ///
        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;
                    }
                }
                node.ParentNode.CheckState = b ? CheckState.Indeterminate : check;
                SetCheckedParentNodes(node.ParentNode, check);
            }
        }


0
0
查看评论

关于DevExpress的XtraTreeList使用方法总结

树形控件是使用频率很高的一种控件。对于属性控件往往需要下面两个功能 1.TreeList带有CheckBox,并且节点要有三种状态(所有的子节点都选中,所有的子节点都没选择,一部分子节点选中)。使用DevXpress的TreeList控件很容易实现这一功能。 设置TreeList.Options...
  • kone0611
  • kone0611
  • 2016-07-01 14:59
  • 1471

DevExpress 下TreeList下的节点复选框的显隐设置

TreeList控件节点复选框的显隐
  • xzwspy
  • xzwspy
  • 2017-11-24 16:11
  • 83

[DevExpress]TreeList获取选中复选框数据列表

最近做项目新增光纤线路清查功能模块,思路和算法已经想好了,些代码时候居然在一个控件上纠结了好长的时间,虽然后来搞定了,但是好记性不然烂笔头,还是写下来,以后要用到的时候直接翻就行,帮助文档看得比较纠结,还是自己写的好。往往当时会用了,一段时间没用后再用的时候有要翻帮助文档或网上搜,纠结很久。我们学东...
  • david_520042
  • david_520042
  • 2016-02-20 01:22
  • 3894

带有CheckBox的TreeList

D
  • kangqiaoyun
  • kangqiaoyun
  • 2014-06-01 11:17
  • 3761

[DevExpress]TreeList控件的复选框

版权声明:作者:jiankunking 出处:http://blog.csdn.net/jiankunking 本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。        TreeList控件可以同...
  • david_520042
  • david_520042
  • 2016-02-19 23:07
  • 4195

Devexpress TreeList CheckBox 复选框

关于devexpress treelist checkbox实现父子节点选中的实现 1,最屌的还是这篇 http://www.devexpresscn.com/DevExpress-Resources/Documentation-10.html 只需设置treeList.O...
  • dreamgis
  • dreamgis
  • 2014-12-18 15:02
  • 3361

DevExpress TreeList控件的复选框

DevExpress的TreeList要想在节点前面显示复选框,得修改属性OptionsView->ShowCheckBoxes=True 复选框的子节点与父节点统一的规则有: 1、选择某一节点时,该节点的子节点全部选择 2、取消某一节点时,该节点的子节点全部取消选择 3、某节点的子节点全部选...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2014-04-21 09:30
  • 5155

TreeList CheckBox 父子节点联动

将treeList.OptionsView.ShowCheckBoxes设置为True,树形结构前就会出现CheckBox选择框,如果您想达到选择父节点,子节点也同时选中的效果,需将treeList.OptionsBehavior.AllowRecursiveNodeChecking设置为True。
  • wangtao510
  • wangtao510
  • 2017-03-14 16:53
  • 626

WPF使用DEV之TreeListControl---添加复选框

1.绑定的Class中添加一个Bool类型的属性 2.   该属性无需初始赋值,你运行即可看到如图:       Bool类型数据自动变成了复选框 3.当然了,你肯定想知道用户选择了哪些复选框,从而你就想获取选中复...
  • PanPen120
  • PanPen120
  • 2015-07-22 22:11
  • 1150

TcxTreeList显示复选框

var lvID:Integer; lvNode:TcxTreeListNode; begin lvID:=-1; lstTree.Root.CheckGroupType:=ncgCheckGroup; ///显示根复选框 lstTree.OptionsView.CheckGroup...
  • gykthh
  • gykthh
  • 2015-04-02 00:04
  • 2262
    个人资料
    • 访问:155942次
    • 积分:2152
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:132篇
    • 译文:0篇
    • 评论:18条
    博客专栏
    最新评论