Je suggère d'utiliser des itérations récursives.
private TreeNode FindNode(TreeView tvSelection, string matchText)
{
foreach (TreeNode node in tvSelection.Nodes)
{
if (node.Tag.ToString() == matchText)
{
return node;
}
else
{
TreeNode nodeChild = FindChildNode (node, matchText);
if (nodeChild != null) return nodeChild;
}
}
return (TreeNode)null;
}
Vous pouvez utiliser cette logique pour déterminer beaucoup de choses sur vous NODE et cette structure vous permet également de développer ce que vous pouvez faire avec le nœud et les critères que vous souhaitez rechercher. Vous pouvez modifier mon exemple pour répondre à vos propres besoins. Ainsi, avec cet exemple, vous pouvez passer dans E et attendre que le nœud E soit retourné alors simplement si la propriété parent du nœud retourné serait le parent que vous recherchez.
tn treenode = FindNode(myTreeview, "E")
tn.parent
est la valeur que vous recherchez.
@ Özkan: Quel numéro 4? Voulez-vous trouver la profondeur? –
Le parent est 'D', non? –
@Albin, oui, je veux trouver la profondeur d'un nœud. – ozkank