martes, febrero 13, 2007

VB .Net/Controls/TreeView

Mi ejemplo de...

Subir y bajar un elemento en un TreeView.

El siguiente código en mi ejemplo de prueba está en el evento "Click" de un botón, este caso para bajar. Para realizar la acción de subir el elemento se puede usar el mismo código pero reemplazando "NextNode" por "PrevNode".
El casteo se debe a poder tener funcionalidad tanto en los nodos como en los elementos raices.

Dim parentObj As Object = TreeView1.SelectedNode.Parent

If parentObj Is Nothing Then
parentObj = TreeView1
End If

Dim selectedNode As TreeNode = TreeView1.SelectedNode
Dim idxSelected As Integer = selectedNode.Index
Dim idxNext As Integer
If selectedNode IsNot Nothing Then
Dim nextNode As TreeNode = TreeView1.SelectedNode.NextNode
If nextNode IsNot Nothing Then
idxNext = nextNode.Index
If TypeOf parentObj Is TreeNode Then
CType(parentObj, TreeNode).Nodes.Remove(CType(parentObj, TreeNode).Nodes(idxSelected))
CType(parentObj, TreeNode).Nodes.Insert(idxNext, selectedNode)
Else
CType(parentObj, TreeView).Nodes.Remove(CType(parentObj, TreeView).Nodes(idxSelected))
CType(parentObj, TreeView).Nodes.Insert(idxNext, selectedNode)
End If
End If
End If

If TypeOf parentObj Is TreeNode Then
TreeView1.SelectedNode = CType(parentObj, TreeNode).Nodes(idxNext)
Else
TreeView1.SelectedNode = CType(parentObj, TreeView).Nodes(idxNext)
End If

1 comentario:

Anónimo dijo...

Estaba buscando la manera de agregar nodos a un treeview pero en una posición determinada, ya que al insertar un nuevo nodo siempre se va hacia el ultimo lugar, pero gracias a tu código pude resolver mi problema... Muchisimas Gracias.