| |||
Respuesta: programación árboles c# Hola, si te refieres a programar un TreeView con c#, te copio un pequeño código que te crea un arbol de un nivel. foreach (DataRow _item in _tbAux.Rows) { if (_item["TipNodo"].ToString() == "NP") { treeArticulos.Nodes.Add(_item["DescripItem"].ToString()); } else if (_item["TipNodo"].ToString() == "NH") { treeArticulos.Nodes[int.Parse(_item["IdNiv1"].ToString())].Nodes.Add(_item["DescripItem"].ToString()); } } este código se basa en una tabla en donde están los items del arbol, el campo llamado TipNodo define si ese registro es un Nodo Padre o un Nodo Hijo, según este código, si el campo tiene NP (nodo padre), agregas al treeview un nodo padre, si el campo tiene NH, tienes que agregar ese registro como un nodo hijo, ahora bien, ¿como determinas a cual nodo padre le corresponden los nodos hijos?, el treeview en c# es bastante mañoso para armarlo, en la última línea tienes tree.nodes[np].nodes.add(nnnn...), con lo cual te quedaría la siguiente estructura: NodoPadre ----NodoHijo1 ----NodoHijo2 ----etc.etc. si tuvieras que agregar un nuevo nivel, por ejemplo en NodoHijo2, para lograr la siguiente estructura: NodoPadre ----NodoHijo1 ----NodoHijo2 --------Uno --------Dos --------Tres, etc, etc, ----etc.etc. tendrias que ingeniartelas para construir la siguiente línea de código: tree.nodes[np_1].nodes[np_2].nodes.add(nnnn...) y así sucesivamente, la cantidad de nodes[].nodes[].nodes[], etc que vayas encadenando definirá tu estructura de arbol. Como te dije al principio, yo uso una tabla que contiene prefabricada la estructura del arbol a los efectos de no lidiar mas de lo necesario con el encadenamiento de los nodes[], te copio un par de ejemplos de dicha tabla: "CAÑOS","NP",0 "Pulidos","NH",0 "Negros","NH",0 "HIERROS","NP",1 "Planchuela","NH",1 "Angulo","NH",1 "Hierros Te","NH",1 El campo numérico, es el Key del Nodo Padre, por lo tanto, cuando se recorre la tabla, mediante el if, determinas si se trata de un nodo padre o de uno hijo, y en consecuencia, basado en el campo key, ya sabes a que nodo enganchar el hijo. Como veras esta solución te crea un arbol de un solo nivel de padre hijo, pero si modificas un poco la tabla y teniendo en cuenta la mecánica de encadenamiento de los Nodes[], deberías poder armar uno mas sofisticado. Espero te sirva. Saludos. |