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

 

转载于:https://www.cnblogs.com/naliang/p/TreeView.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值