Principales respuestas
Seleccionar hijo en treeview

Pregunta
-
Buenas, tengo un TreeView que tiene incluidos varios TreeNode, los cuales a la vez tambien tienen otros TreeNode agregados. O sea es un arbol de 2 niveles.
Como puedo hacer para seleccionar y marcar como seleccionado un nodo hijo??
Probe con: arbol.SelectedNode = arbol.Nodes[0].Nodes[0]; para marcar el primer hijo y no me da bola.
Si pongo arbol.SelectedNode = arbol.Nodes[0] me selecciona el primer padre, pero lo del hijo no lo logro.
Como puedo hacer??
GRACIAS
Respuestas
-
Buenas, estaba pasando por el evento afterSelect. Para que no lo ejecute le puse una varible control para que la primera vez que es llamado no se ejecute.
Dejo el código para el que le sirva.
Muchas gracias!!control = true; contenidos.SelectedNode = contenidos.Nodes[index_leccion].Nodes[index_apartado]; contenidos.Select(); contenidos.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyUp); contenidos.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.contenidos_AfterSelect); private void contenidos_AfterSelect(object sender, TreeViewEventArgs e) { if (!control) { ..... } else { control = false; } }
- Marcado como respuesta polaco_cac lunes, 27 de septiembre de 2010 14:13
Todas las respuestas
-
me imagino que debe ser algo como
arbol.Nodes[0].SelectNode = arbol.Nodes[0].Nodes[0];
mas omenos deberias revisarlo.
Saludos
Coding "La lucha diaria" - D3S........D4S
Necesitamos un voto: Aquí
"Ya tengo Blog :D": Primer Entrada Silverlight y WCF RIA -
disculpame creo que es así:
Treeview1.Nodes[0].ChildNodes[0].Selected =
true;
Coding "La lucha diaria" - D3S........D4S
Necesitamos un voto: Aquí
"Ya tengo Blog :D": Primer Entrada Silverlight y WCF RIA- Propuesto como respuesta Felipe Sotelo S viernes, 24 de septiembre de 2010 16:29
-
-
hola
prueba usando
treeView1.SelectedNode = treeView1.Nodes[0].Nodes[0];
treeView1.Select();estaba funcionado bien la seleccion, solo que el treeview no tenia el foco
sino prueba de asignar la propeidad "HideSelection", veras que aunque no uses el Select() se ve la seleccion con un tono gris claro, si pasa el foco al treeview, se activa en azul
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
La linea contenidos.SelectedNode = contenidos.Nodes[0].Nodes[1]; hace que no se levante el form. Es decir, no se llega a ver nada pero tampoco tira error ni se queda pensado. Que puede ser?? Cuando llego a esta instancia el arbol ya está cargado completo.
-
No entiendo contenidos.SelectedNode acaso esto no es de solo lectura?
Coding "La lucha diaria" - D3S........D4S
Necesitamos un voto: Aquí
"Ya tengo Blog :D": Primer Entrada Silverlight y WCF RIA -
hola
estas usando algun evento del estilo SelectedIndexChanged, en el treeview ?
si es asi pon un breakpoint en ese evento y valoda sino entra alli cuando pasa por esa linea
esto puede hacer que entre en un loop
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
-
Huy perdón pense que era para ASP.NET :D
Coding "La lucha diaria" - D3S........D4S
Necesitamos un voto: Aquí
"Ya tengo Blog :D": Primer Entrada Silverlight y WCF RIA -
Ya intentaste asi:
treeView1.SelectedNode = treeView1.Nodes[0].Nodes[0].Nodes[0];
treeView1.Select(); :DD
Coding "La lucha diaria" - D3S........D4S
Necesitamos un voto: Aquí
"Ya tengo Blog :D": Primer Entrada Silverlight y WCF RIA -
es rarisimo, lo he probado y funciona perfectoprueba de create un treeview nuevo, cargale desde el diseñador algunos items (usa la propeidad Coleccion)
luego usa esa linea
treeView1.SelectedNode = treeView1.Nodes[0].Nodes[0];
veras que funciona, yo lo probe y anda perfecto
debe de ser algo en ese tree en particular, has validado si se lanza algun evento al seleccionar el item ?
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Puede ser por el evento? Porque este arbol sirve para seleccionar un apartado de un curso y lo que hago es recordar el apartado en el que quedó la ultima vez y marcarlo cuando entra de nuevo, por lo que se estaria seleccionando automaticamente. Que tendría que hacer para evitar el problema?? Asignarle el evento despues de marcar el nodo??
GRACIAS
-
Asignarle el evento despues de marcar el nodo??
exacto eso es justo lo que estaba por proponerte, quita el handler automatico al evento
y agrega uno por codigo usando el AddHandler despues de realizar la seleccion
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Era por eso nomas.
Ahora si hago
contenidos.SelectedNode = contenidos.Nodes[2].Nodes[2]; contenidos.Select();
Habiendo quitado los eventos, funciona perfecto.
Pero si le trato de agregar los eventos se queda nomas
contenidos.SelectedNode = contenidos.Nodes[2].Nodes[2]; contenidos.Select(); contenidos.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.contenidos_AfterSelect); contenidos.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyUp);
Estoy agregando mal los eventos o que pasa??
GRACIAS
-
-
-
claro, cuando pasa por la lines
contenidos.SelectedNode = contenidos.Nodes[2].Nodes[2];
se ejecuta alguno de los eventos ?
porque ahora los estas agregando desde codigo, no deberia pasar por alli al asignar la seleccion
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Buenas, estaba pasando por el evento afterSelect. Para que no lo ejecute le puse una varible control para que la primera vez que es llamado no se ejecute.
Dejo el código para el que le sirva.
Muchas gracias!!control = true; contenidos.SelectedNode = contenidos.Nodes[index_leccion].Nodes[index_apartado]; contenidos.Select(); contenidos.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyUp); contenidos.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.contenidos_AfterSelect); private void contenidos_AfterSelect(object sender, TreeViewEventArgs e) { if (!control) { ..... } else { control = false; } }
- Marcado como respuesta polaco_cac lunes, 27 de septiembre de 2010 14:13