zoukankan      html  css  js  c++  java
  • winfrom 树勾选

    树勾选

            /// <summary>
            /// 树勾选
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void tvCourse_AfterCheck(object sender, TreeViewEventArgs e)
            {
                if (e.Action ==TreeViewAction.ByMouse)
                {
                    if (e.Node.Checked)
                    {
                        SetChildNode(e.Node, true);
                        if (null!= e.Node.Parent)
                        {
                            SetParentNode(e.Node, true);
                        }
                    }
                    else
                    {
                        //取消节点选中状态之后,取消所有父节点的选中状态
                        SetChildNode(e.Node, false);
                        //如果节点存在父节点,取消父节点的选中状态
                        if (e.Node.Parent != null)
                        {
                            SetParentNode(e.Node, false);
                        }
                    }
                }
            }
            /// <summary>
            /// 设置父节点
            /// </summary>
            /// <param name="node">当前节点</param>
            /// <param name="state">状态</param>
            private void SetParentNode(TreeNode node, bool state)
            {
                TreeNode pNode = node.Parent;
                if (null != pNode)
                {
                    pNode.Checked = state;
                    bool flag = false;
                    foreach (TreeNode currNode in pNode.Nodes)
                    {
                        if (!currNode.Checked)  //控制父节点全选,父节点选中去掉!
                        {
                            flag = false;
                            pNode.Checked = flag;
                            break;
                        }
                        //SetParentNode(item, state);
                    }
                    SetParentNode(pNode, flag);
                    
                }
            }
            /// <summary>
            /// 设置子节点
            /// </summary>
            /// <param name="node">当前节点</param>
            /// <param name="state">状态</param>
            private void SetChildNode(TreeNode node, bool state)
            {
                TreeNodeCollection tncNodes = node.Nodes;
                if (tncNodes.Count>0)
                {
                    foreach (TreeNode currNode in tncNodes)
                    {
                        currNode.Checked = state;
                        SetChildNode(currNode, state);
                    }
                }
            }
    View Code
  • 相关阅读:
    小程序隐藏或自定义 scroll-view滚动条
    小程序携带参数(单个或多个)跳转页面(实例)
    小程序接收from表单数据(实例)
    js返回上一页
    项目部署到线上后台进不去
    微信小程序取消button边框线
    阿里iconfont图库官网网址
    php 发送邮件(实例)
    PHP 数组序列化,转为字符串
    面向对象的设计原则
  • 原文地址:https://www.cnblogs.com/love201314/p/6232796.html
Copyright © 2011-2022 走看看