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
  • 相关阅读:
    事务/数据库操作之事务,开启回滚提交
    python连接数据库、cursor fetch语句处理
    order by 排序输出、插入
    表的查询,
    android权限大全
    uniapp ios端证书打包+开发环境
    uniapp在app端白屏报错
    数字递增动画js插件-countUp.js
    窗口滚动时,判断元素与视野的关系-js代码
    Linux安装Nginx并配置站点
  • 原文地址:https://www.cnblogs.com/love201314/p/6232796.html
Copyright © 2011-2022 走看看