Treeview

sdemingo
02 de Octubre del 2003
Hola a [email protected],

¿Cómo puedo saber el nivel que ocupa el selecteditem de un treeview?

Si por ejemplo tengo 3 niveles de elementos:

nivel1
--------nivel2
----------------nivel3

¿Cómo puedo saber qué nivel ocupa el elemento seleccionado en ese momento?

Gracias

Un saludo
sdemingo

Juan
02 de Octubre del 2003
Pues a falta de una propiedad o método que lo calcule directamente,
puedes ir contando hacia atrás con la propiedad Parent
del objeto Node.
Te pongo un ejemplo que lo verás mas claro. El ejemplo
necesita un treeview, un label y un commandbutton.

Private Sub Form_Load()
With TreeView1.Nodes
.Add , tvwFirst, , "nodo 1"
.Add 1, tvwChild, , "nodo 1.1"
.Add 2, tvwLast, , "nodo 1.2"
.Add 3, tvwChild, , "nodo 1.2.1"
.Add , tvwLast, , "nodo 2"
.Add , tvwLast, , "nodo 3"
End With
End Sub
Private Sub Command1_Click()
MsgBox "nodo en nivel " & CStr(contarNivel(TreeView1.SelectedItem))
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Label1.Caption = "nodo en nivel " & CStr(contarNivel(Node))
End Sub
Private Function contarNivel(ByRef nodo As Node) As Integer
Dim auxNode As Node
Set auxNode = nodo
Do While Not (auxNode.Parent Is Nothing)
contarNivel = contarNivel + 1
Set auxNode = auxNode.Parent
Loop
End Function

sdemingo
02 de Octubre del 2003
Muchas Gracias Juan.

;-)