Buen Día a todos! Eh visto la necesidad de publicar esto debido a la gran duda de varios usuarios de ¿Cómo recorrer un TreeView? como mínimo. Colocaré los codigos tanto en c# como en vb para facilitarles un poco la vida,para que la analizen y sigamos todos progresando por lo más mínimo que sea =).
Bien, para comenzar debemos saber que un TreeView es una colección de nodos ordenados de manera jerárquica(Padre-Hijo), es con esta definición que nos abrirá un poco la lógica hacia codificación, veamos :
Código en VB.NET :'Se Declara una colección de nodos apartir de tu Treeview
'del que se va a recorrer
Dim nodes As TreeNodeCollection = TuTreeView.Nodes
'Se recorren los nodos principales
For Each n As TreeNode In nodes
'Se Declara un metodo para que recorra los hijos de los principales
'Y los hijos de los hijos....Recorrido Total en pocas palabras
'Para ello se envía el nodo actual para evaluar si tiene hijos
RecorrerNodos(n)
Next
* Se Declara el método “RecorrerNodos” :
Private Sub RecorrerNodos(treeNode As TreeNode)
Try
'Si el nodo que recibimos tiene hijos se recorrerá
'para luego verificar si esta o no checado
For Each tn As TreeNode In treeNode.Nodes
'Se Verifica si esta marcado...
If tn.Checked = True Then
'Si esta marcado mostramos el texto del nodo
MessageBox.Show(tb.Text)
End If
'Ahora hago verificacion a los hijos del nodo actual
'Esta iteración no acabara hasta llegar al ultimo nodo principal
RecorrerNodos(tn)
Next
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
Ahora el código en C#.NET :
*Este código se puede colocar por ejemplo en el evento Click de un boton :
//Se Declara una colección de nodos apartir de tu Treeview
//del que se va a recorrer
{
TreeNodeCollection nodes = TuTreeView.Nodes;
//Se recorren los nodos principales
foreach (TreeNode n in nodes) {
//Se Declara un metodo para que recorra los hijos de los principales
//Y los hijos de los hijos....Recorrido Total en pocas palabras
//Para ello se envía el nodo actual para evaluar si tiene hijos
RecorrerNodos(n);
}
}
* Se Declara el método “RecorrerNodos” :
private void RecorrerNodos(TreeNode treeNode)
{
try {
//Si el nodo que recibimos tiene hijos se recorrerá
//para luego verificar si esta o no checado
foreach (TreeNode tn in treeNode.Nodes) {
//Se Verifica si esta marcado...
if (tn.Checked == true) {
//Si esta marcado mostramos el texto del nodo
MessageBox.Show(tb.Text);
}
//Ahora hago verificacion a los hijos del nodo actual
//Esta iteración no acabara hasta llegar al ultimo nodo principal
RecorrerNodos(tn);
}
} catch (Exception ex) {
MessageBox.Show(ex.ToString());
}
}
Espero les haya sido de mucha utilidad, pues con este ejemplo pueden explotar un poco más su imaginación. Saludos!.
Gracias :DD
ResponderEliminarhas salvado mi cuatri xD
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarMuchas gracias amigo, quisiera saber si ¿aplica también para cuando el TreeView tiene 5 niveles de hijos? Ejemplo:
ResponderEliminarPadre1
...Hijo1
......SubHijo1
.........UnoMás
............OtroMás
......SubHijo2
.........UnoMás
............OtroMás
...
Muchas gracias por tu aporte encontrar sobre treeviews en Internet está complejo.
Hola Leonardo, sí aplica ;)
EliminarEste comentario ha sido eliminado por el autor.
EliminarEste comentario ha sido eliminado por el autor.
Eliminar