标题:有关treeview获取节点的问题
只看楼主
Chonrye
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-8-16
 问题点数:0 回复次数:2 
有关treeview获取节点的问题
在一个treeview中有多个在不同位置的节点符合某要求(比如node.tag ==2),如何遍历这个树并把符合要求的节点添加到集合中,最后返回这个集合。谢谢大佬们
搜索更多相关主题的帖子: 集合 获取 节点 要求 treeview 
2020-08-16 19:03
shenxq123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-9-3
得分:0 
程序代码:
private void Form1_Load(object sender, EventArgs e)
        {

            for (int i = 0; i < 5; i++) {
                TreeNode tn = new TreeNode();
                tn.Text = $"节点{i}";
                tn.Tag = i;

                for (int j = 0; j < 5; j++) {
                    TreeNode tn1 = new TreeNode();
                    tn1.Text = $"子节点{j}";
                    tn1.Tag = j;
                    tn.Nodes.Add(tn1);

                    for (int k = 0; k < 5; k++) {
                        TreeNode tn2 = new TreeNode();
                        tn2.Text = $"子子节点{k}";
                        tn2.Tag = k;
                        tn1.Nodes.Add(tn2);
                    }

                }

                treeView1.Nodes.Add(tn);

            }


        }

        private List<TreeNode> find_node(TreeNode tn) {

            List<TreeNode> node_list = new List<TreeNode>();

            //首先判断本节点是不是符合条件的
            if (tn.Tag.ToString() == "2") {
                node_list.Add(tn);
            }

            //如果有子节点
            if (tn.Nodes.Count > 0)
            {
                foreach (TreeNode t in tn.Nodes) {
                    node_list.AddRange(find_node(t));
                }
            }

            return node_list;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //查询符合条件的节点集合
            List<TreeNode> node_list = new List<TreeNode>();
            foreach (TreeNode tn in treeView1.Nodes) {
                node_list.AddRange(find_node(tn));
            }

            int cc = 0;
        }
2020-09-03 22:41
abc238361
Rank: 1
等 级:新手上路
威 望:1
帖 子:19
专家分:0
注 册:2021-3-14
得分:0 
学习中
2021-03-17 10:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502881-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.091517 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved