zoukankan      html  css  js  c++  java
  • winform treeview 节点过滤

    项目中有一个已经绑定好的treeview ,需求是,根据过滤条件A,把不满足条件A的节点过滤掉,如果节点不满足条件,但叶子节点满足条件,该节点保留,节点不满足条件,该节点下的叶子节点也不满足条件,该节点和叶子节点都过滤掉。

    算法是:到序遍历每一个树节点(先遍历叶子节点),如果节点是叶子节点,检查条件,不满足移除。

    关键代码:

     1         /// <summary>
     2         /// 移除叶子节点
     3         /// </summary>
     4         /// <returns></returns>
     5         private void RemoveNode(TreeNode tn)
     6         {
     7             for (int i = tn.Nodes.Count - 1; i >= 0; i--)
     8             {
     9                 RemoveNode(tn.Nodes[i]);
    10             }
    11             Task t = tn.Tag as Task;
    12             if (!this.FilderCondition(t)&&tn.Nodes.Count==0)
    13             {
    14                 tn.Remove();
    15             }
    16         }

    遍历树节点:

            private void button1_Click(object sender, EventArgs e)
            {
                for (int i = treeView1.Nodes.Count - 1; i >= 0; i--)
                {
                    RemoveNode(treeView1.Nodes[i]);
                }
            }

     Demo下载

  • 相关阅读:
    Java实现二叉排序树
    servlet/filter/listener/interceptor区别与联系
    Java中创建对象的5种方式
    字符串练习
    成员变量、类变量、局部变量的区别
    强制清除gradle 缓存
    XML
    jQuery
    JavaScript
    CSS
  • 原文地址:https://www.cnblogs.com/langhua/p/3079128.html
Copyright © 2011-2022 走看看