Una de TreeViews/TreeNodes (Esconder elementos)

14/07/2004 - 09:43 por Oriol | Informe spam
Hola a todos,

Estoy trabajando en un proyecto WinForm en C# donde tengo un TreeView con
los clientes de la empresa, y dentro de cada nodo de la empresa cuelgan
varios nodos mas, con nodos mas especificos.

P.Ej:
+ Nombre Empresa
|-- Informacion General
|-- Centros de Trabajo
|-- Trabajadores
|-- Informes
etc...

Mi problema viene ( o puede ser causa de que no lleno bien el Treeview)
cuando quiero recuperar informacion del cliente en el evento AfterSelect, ya
que lo unico que he conseguido recuperar es el nombre del nodo, y quisiera
recuperar el ID del cliente. He provado de crear un nuevo nodo con el ID del
cliente, y puedo recuperarlo, pero en este caso me aparece coo un nodo mas
en el arbol, cosa que no quiero.

Os dejo el codigo donde creo los nodos, a ver si podeis ayudarme en el caso
que rellene mal los nodos, porque lo de esconder el nodo ID no lo he
conseguido tampoco.

foreach(Cliente ClienteArbol in arData)

{

tv.Nodes.Add(new TreeNode(ClienteArbol.NombreEmpresa19, 19));

tv.Nodes[arData.IndexOf(ClienteArbol)].Nodes.Add(new
TreeNode(ClienteArbol.IdCliente));

tv.Nodes[arData.IndexOf(ClienteArbol)].Nodes.Add(new TreeNode("Información
del Cliente", 15, 15));

tv.Nodes[arData.IndexOf(ClienteArbol)].Nodes.Add(new TreeNode("Centros de
Trabajo", 12, 12));

tv.Nodes[arData.IndexOf(ClienteArbol)].Nodes.Add(new TreeNode("Informes", 1,
1));

tv.Nodes[arData.IndexOf(ClienteArbol)].Nodes.Add(new
TreeNode("Presupuestos", 2, 2));

tv.Nodes[arData.IndexOf(ClienteArbol)].Nodes.Add(new
TreeNode("Trabajadores", 7, 7));

}

Como podeis ver, aqui pongo el nodo[0]=ID para poder recuperarlo, pero no
puedo ocultarlo en el arbol.

Me podeis dar un cable... estoy perdido!

Gracias a todos,
Un saludo.
Oriol.
 

Leer las respuestas

#1 Alejandro Perez
14/07/2004 - 16:28 | Informe spam
Hola de nuevo Oriol :p

Se me ocurre que puedes guardar el ID del Cliente en el
Tag del Nodo. Algo como esto:

foreach(Cliente ClienteArbol in arData)
{
tv.Nodes.Add(new TreeNode(ClienteArbol.NombreEmpresa,19,
19));

tv.Nodes[arData.IndexOf
(ClienteArbol)].Tag=ClienteArbol.IdCliente;

tv.Nodes[arData.IndexOf(ClienteArbol)].Nodes.Add(new
TreeNode("Información
del Cliente", 15, 15));

tv.Nodes[arData.IndexOf(ClienteArbol)].Nodes.Add(new
TreeNode("Centros de
Trabajo", 12, 12));
.
.
.
}

Asi vas a tener el ID del cliente en cada nodo Padre..
luego en el AfterSelect del TreeView almacenas el ID del
Cliente donde la necesites

private void tv_AfterSelect(object sender,
System.Windows.Forms.TreeViewEventArgs e)
{
try
{
MessageBox.Show(e.Node.Tag.ToString());
}
catch
{}
}

Cuentame si te sirve...

Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Mostrar la cita
tengo un TreeView con
Mostrar la cita
empresa cuelgan
Mostrar la cita
bien el Treeview)
Mostrar la cita
evento AfterSelect, ya
Mostrar la cita
del nodo, y quisiera
Mostrar la cita
nuevo nodo con el ID del
Mostrar la cita
aparece coo un nodo mas
Mostrar la cita
ayudarme en el caso
Mostrar la cita
ID no lo he
Mostrar la cita
19));
Mostrar la cita
TreeNode("Información
Mostrar la cita
TreeNode("Centros de
Mostrar la cita
TreeNode("Informes", 1,
Mostrar la cita
recuperarlo, pero no
Mostrar la cita

Preguntas similares