我有一个树视图,显示成员可能有重复,标签不会.例:
TreeNode node = new TreeNode(itemName); node.Tag = itemID; //unique ID for the item treeView1.Nodes.Add(node);
treeView1.Nodes.Find(itemName,true);
解决方法
尝试这个:
var result = treeView1.Nodes.OfType<TreeNode>() .FirstOrDefault(node=>node.Tag.Equals(itemID));
注意:因为你说你的itemID是唯一的,所以你可以使用FirstOrDefault来搜索唯一的项目.如果没有找到结果将为null.
UPDATE
要搜索所有级别的所有节点,您可以尝试使用一些递归方法,如下所示:
public TreeNode FromID(string itemId,TreeNode rootNode){ foreach(TreeNode node in rootNode.Nodes){ if(node.Tag.Equals(itemId)) return node; TreeNode next = FromID(itemId,node); if(next != null) return next; } return null; } //Usage TreeNode itemNode = null; foreach(TreeNode node in treeView1.Nodes){ itemNode = FromID(itemId,node); if(itemNode != null) break; }