Sugeriría usar iteraciones recursivas.
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;
}
Puede utilizar esta lógica para determinar muchas cosas sobre usted nodo y esta estructura también le permite ampliar lo que puede hacer con el nodo y los criterios que desea buscar. Puedes editar mi ejemplo para que se ajuste a tus necesidades.
Por lo tanto, con este ejemplo podría pasar E y esperar tener el nodo E devuelto entonces simplemente si la propiedad primaria del nodo devuelto sería la principal que está buscando.
tn treenode = FindNode(myTreeview, "E")
tn.parent
es el valor que está después.
@ Özkan: ¿Qué número 4? ¿Quieres encontrar la profundidad? –
El padre es 'D', ¿verdad? –
@Albin, sí, quiero encontrar la profundidad de un nodo. – ozkank