有关treeview获取节点的问题
在一个treeview中有多个在不同位置的节点符合某要求(比如node.tag ==2),如何遍历这个树并把符合要求的节点添加到集合中,最后返回这个集合。谢谢大佬们
程序代码:
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; }