打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C# TreeView checkbox 联动打勾
 原文来源:http://hi.baidu.com/jm_li_cn/blog/item/017d28c0d2f36e1ea08bb756.html
//下面-->将树的checkbox选中 tvDevice是treeview
          #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;
            //bool bo = node.Checked;      
            if (node.Checked)
            {
                setNodeTrue(node);
                setNodeStateTrue(node);
            }
            else {
                setNodeStateFalse(node);
                setNodeFalse(node);
            }
        }
        #endregion
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何获取datagridview中checkbox控件选中的多行数据?
Jquery为单选框checkbox绑定单击事件
Flutter组件精讲【78】复选框CheckBox
[html] 第112天 你知道checkbox有几种状态吗?它们分别用来表示什么?
checkbox横向选择
JQuery 改变 checkbox 状态
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服