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 mas 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 :
'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!.
No hay comentarios:
Publicar un comentario