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
  • 相关阅读:
    转移阵地啦
    春之感--3月10日
    小鱼儿
    关于时间方法(date和simpledateformat)的实验
    hadoop练习处理地震数据
    出现log4j.properties问题
    远程hadoop集群方法
    小W学物理
    灵知的太阳信仰
    Blue
  • 原文地址:https://www.cnblogs.com/love201314/p/6232796.html
Copyright © 2011-2022 走看看