有关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;
}






