zoukankan      html  css  js  c++  java
  • 如何移除TreeView中的所有选中节点

    递归方法,整体思路是:首先对根节点下的所有子节点做一个循环,在循环体里边,判断该子节点是否是叶节点,是的话就移除该节点,并且将子节点数count减一,计数器i也减一,否则就递归调用方法traverse ( childNode )并重新获取该节点的子节点数(childCount = childNode.ChildNodes.Count;判断该节点的子节点数是否为0,是的话就移除该节点

    // 获得TreeView的根节点

    TreeNode node = TreeView.Nodes [0];

    // 递归方法

    traverse ( node );

     

        /// <summary>

        /// 递归移除所有选中的节点

        /// </summary>

        /// <param name="parentNode"></param>

        private void traverse ( TreeNode parentNode )

        {

            int count = parentNode.ChildNodes.Count;

            for ( int i = 0 ; i < count ; i++ )

            {

                TreeNode childNode = parentNode.ChildNodes [i];

                // 移除之前的子节点数

                int childCount = childNode.ChildNodes.Count;

                // 移除算法

                if ( childCount > 0 )

                {

                    // 递归调用

                    traverse ( childNode );

                    // 移除之后剩余的子节点

                    childCount = childNode.ChildNodes.Count;

                }

                else if ( childNode.ChildNodes.Count == 0 && childNode.Checked )

                {

                    // 您要做的其他操作

     

                    // 移除被选中的节点

                    parentNode.ChildNodes.Remove ( childNode );

                    --count;

                    --i;

                }

     

                // 移除被选中的父节点(如果父节点的子节点数为0,父节点也要移除)

                if ( childCount == 0  )

                {

                    parentNode.ChildNodes.Remove ( childNode );

                    --count;

                    --i;

                }

            }

      }

     

  • 相关阅读:
    网络安全之常见攻击
    引入element-ui
    引入sass
    浏览器解析流程
    JDK8 HashMap--removeNode()移除节点方法
    JDK8 HashMap--treeify()树形化方法
    JDK1.8 HashMap--treeifyBin()方法
    二叉查找树ADT
    队列ADT

  • 原文地址:https://www.cnblogs.com/liufei88866/p/1914490.html
Copyright © 2011-2022 走看看