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下载

  • 相关阅读:
    [PA2014]Muzeum
    [TJOI2015]概率论
    To Do List
    【洛谷4172】 [WC2006]水管局长(LCT)
    HNOI2019退役记
    hdu 2159 FATE
    USACO 2019 January Contest, Platinum 题解
    luogu4774 [NOI2018]屠龙勇士
    NOI 2019游记
    loj #3145. 「APIO 2019」桥梁
  • 原文地址:https://www.cnblogs.com/langhua/p/3079128.html
Copyright © 2011-2022 走看看