Visual Basic.NET - Selected Node de un TreeView

   
Vista:

Selected Node de un TreeView

Publicado por Anita (28 intervenciones) el 03/09/2007 22:08:40
Hola, mi duda es la siguiente: como puedo saber si hay algun nodo seleccionado dentro de un TreeView??? Necesito algo asi:

if Form1.TreeView1.SelectedNode."EXISTE" = TRUE then
blablabla
else
blablabla
end if

Le agradeceria mucho a quien me pudiera ayudar. Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Selected Node de un TreeView

Publicado por OliBeer (391 intervenciones) el 03/09/2007 22:44:36
Cuando quiero saber que nodo está seleccionado simpre utilizo una función como esta:

Nodo = Me.tvwReportes.SelectedNode.Value

Select Case Nodo
Case Is = 0
clsComun.MostrarMensaje("Debe seleccionar un Reporte de la lista.")
Case Is = 1
bla bla bla
Case Is = 2
bla bla bla
Case Is = 3
bla bla bla
End Select

En tu caso seleccionarias el Text de SelectedNode para comparar, o, acomodándolo como lo quieres:

If Me.tvwReportes.SelectedNode.Text = "Actividades" Then
bla bla bla
Else
bla bla bla
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por Anita (28 intervenciones) el 03/09/2007 23:13:48
Gracias OliBeer, peor en realidad no necesito saber cual de todos los nodos esta seleccionado, de hehco eso me complicaria mas adelante. Lo que me hace falta es una manera de saber si algun nodo (cualquiera) esta seleccionado para habilitar un par de procesos asociados al TreeView.
De todas maneras muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por OliBeer (391 intervenciones) el 04/09/2007 00:18:56
A ver si esto te sirve

For Each tree As TreeNode In Me.tvwReportes.Nodes
If tree.Selected Then
bla bla bla
End If
Next

recorre todos los nodos del arbol y en el que esté seleccionado hará bla bla bla jaja... :P ahí pones una bandera y te riges por el resultado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por Anita (28 intervenciones) el 04/09/2007 14:29:28
Voy a intentarlo Oli muchas gracias por siempre dar esas ideas!! Cuidate, bye!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por Anita (28 intervenciones) el 04/09/2007 15:37:06
Hola de nuevo, intente la solucion planteada por OliBeer y me da ciertos problemitas, resulta que cuando el SelectedNode esta en el primer nivel si funciona a la perfeccion, pero si el selectedNode esta en un nivel mas lejano no funciona. Me da la impresion de que el For each no esta recorriendo todos lo nodos del arbol sino solo los del primer nivel.
Que hago??

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por OliBeer (391 intervenciones) el 04/09/2007 16:09:33
Gracias por tu mensaje anterior :D

Asi es, ese For sólo recorre los de primer nivel, Cuantos niveles vas a tener en el Arbol?? Los vas a saber en concreto o estos pueden crecer de manera que tu no lo puedas controlar?? Por que lo que tienes que hacer es meter For dentro de For, por eso ocupo saber los niveles.

Saludos y gracias. (K)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por Anita (28 intervenciones) el 04/09/2007 16:18:48
Hola! mi arbol va a tener maximo 3 niveles, es decir, la raiz y tres niveles mas, pero el nodo seleccionado podria estar en cualquier parte. Que se te ocurre?

PD: lo del mensaje anterior es super cierto, eres de los que mas ayuda en este foro! thanks!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por OliBeer (391 intervenciones) el 04/09/2007 17:37:55
Con esto tiene que funcionar, si ocupas más hijos de hijos, checa los ELSE para que pongas otro FOR

For Each Padre As TreeNode In Me.tvwReportes.Nodes
If Padre.Selected Then
clsComun.MostrarMensaje("El padre " & Padre.Value & " está seleccionado.")
Else
'revisa los hijos
For Each Hijo As TreeNode In Padre.ChildNodes
If Hijo.Selected Then
clsComun.MostrarMensaje("El Hijo " & Hijo.Value & " está seleccionado.")
Else
'Revisa los nietos
For Each Nieto As TreeNode In Hijo.ChildNodes
If Nieto.Selected Then
clsComun.MostrarMensaje("El Nieto " & Nieto.Value & " está seleccionado.")
Else
'Si ocupas bisnietos, aqui pones el otro FOR
End If
Next
End If
Next
End If
Next

Espero te sirva, y me dices cómo te fue. Gracias por tus comentarios, la verdad se aprecian mucho. (K) ya no sé qué decir... :P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por Anita (28 intervenciones) el 04/09/2007 18:04:25
Perfecto Oli! muchas gracias! me sirvio tal cual como queria!! Gracias, gracias, gracias!!!!
Ahora por fin voy a poder continuar programando todo lo demas, asi que probablemente de un par de vueltas mas por este foro jejeje.
Cuidate mucho!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por Harold V. (411 intervenciones) el 04/09/2007 18:40:50
Dim nodesel As Int32 = 0

Private Sub tvTablas_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tvTablas.AfterSelect

nodesel = e.Node.Index

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If nodesel > 0 Then
msgbox ("nodo: " & Me.tvTablas.Nodes(0).Nodes(nodesel).Text & " seleccionado."
End If

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Selected Node de un TreeView

Publicado por Alastair (1 intervención) el 07/01/2014 20:56:11
Ayuda!!!, resulta que tengo mi TreeView donde ya lo cargo con un XML, cuando selecciono algun nodo (controlado con el OnSelectecNodeChanged) obtengo el nodo seleccionado y lo guardo en un XmlNode.

XmlDocument doc = (XmlDocument)Session["XML"];

XmlNode node = doc.SelectSingleNode(trvFormas.SelectedNode.DataPath);

y ya despues me carga sus atributos y valores en un gridview, bien, el problema es que tengo un metodo que copia y quita nodos, por medio de 2 botones, "Copiar" "Quitar" cuando copio un nodo, se agrega un nodo al TreeView, pero cuando selecciono el nodo que acabo de copiar, aun asi tenga 4 o 5, siempre obtiene los valores del primero

*Nodo padre
- Nodo Hijo
- Nodo Hijo <----Nodo copiado

bajo esa logica, el data path de Nodo padre es position[1] el Nodo Hijo seria position[1]/position[1]
.: Por lo tanto, la copia del Nodo Hijo seria position[1]/position[2], pero, cuando lo selecciono siempre me manda la posicion del Nodo Hijo position[1]/position[1] aunque seleccione el de abajo.

Porque pasa esto????, si estoy seleccionando el nodo "Nodo Hijo" en "position[1]/position[2]"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar