• 如何移除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;

                }

            }

      }

     

  • 相关阅读:
    Java反射之访问私有属性或方法
    java字符串中显示双引号
    什么导致spring事务失效
    ActiveMq性能优化
    JFrame关闭事件处理
    c3p0数据库连接池死锁问题
    Mongodb性能优化
    Spring事务配置的五种方式
    ActiveMq启动停止
    JScrollPane动态加载图片
  • 原文地址:https://www.cnblogs.com/liufei88866/p/1914490.html
Copyright © 2020-2023  润新知