zoukankan      html  css  js  c++  java
  • TreeView checkbox

    C# TreeView checkbox 联动打勾
    
      #region 将树的checkbox选中
            private void setNodeTrue(Node selNode) { 
                Node node = selNode.Parent;
                if (node != null) {
                    node.CheckState =  CheckState.Checked;
                    setNodeTrue(node);
                }
            }
            #endregion
            #region 将树的checkbox选中
            private void setNodeStateTrue(Node selNode)
            {
                if (selNode.CheckBoxVisible)
                {
                    selNode.CheckState =  CheckState.Checked;
                    foreach (Node node in selNode.Nodes)
                    {
                        setNodeStateTrue(node);                }
                }
            }
            #endregion        #region 将树的checkbox取消选中
            private void setNodeStateFalse(Node selNode)
            {
                if (selNode.CheckBoxVisible) {
                    selNode.CheckState =  CheckState.Unchecked;
                    foreach (Node node in selNode.Nodes)
                    {
                        setNodeStateFalse(node);                }
                }
            }
            #endregion        #region 将树的checkbox取消选中
            private void setNodeFalse(Node selNode)
            {
                Node nextNode = selNode.NextNode;
                Node previousNode = selNode.PrevNode;
                Node praNode = selNode.Parent;
                if (praNode != null) {
                    while (nextNode != null)
                    {
                        if (nextNode.Checked)
                        {
                            return;
                        }
                        nextNode = nextNode.NextNode;
                    }
                    while (previousNode != null)
                    {
                        if (previousNode.Checked)
                        {
                            return;
                        }
                        previousNode = previousNode.PrevNode;
                    }
                    praNode.CheckState =  CheckState.Unchecked;
                    setNodeFalse(praNode);
                }
            }
            #endregion  #region 单击树的checkbox事件
            private void tvDevice_AfterCheck(object sender, AdvTreeCellEventArgs e)
            {
                Node node = tvDevice.SelectedNode;  
                if (node.Checked)
                {                setNodeTrue(node);
                    setNodeStateTrue(node);
                }
                else {
                    setNodeStateFalse(node);
                    setNodeFalse(node);
                }
            }
            #endregion 

    原文来自 http://hi.baidu.com/jm_li_cn/item/ce4cec163f02932bd0d66dbb
  • 相关阅读:
    android 如何在手机上 安装两个同样的app
    Ubuntu 16.04 安装Gitlab
    VScode开发C++常用插件
    过滤text字段为空的数据
    ES标签搜索并解决评分排序问题
    3
    2
    1
    9
    Maven3种打包方式
  • 原文地址:https://www.cnblogs.com/naliang/p/TreeView.html
Copyright © 2011-2022 走看看