Tak tady jedna možnost, která je přes ContextMenuStrip a funguje jen pro určité Node, které jsou v tvNode. 1. v TreeView_MouseClick
Private Sub TreeView_MouseClick(sender As Object, e As MouseEventArgs) Handles TreeView.MouseClick
If e.Button = Windows.Forms.MouseButton.Right Then
tvNodeName = TreeView.GetNodeAt(e.X, e.Y).Text
End If
End Sub
2. v ContextMenuStrip (pro MoveUp nebo MoveDown)
Private Sub cmsMoveUp_Click(sender As Object, e As EventArgs) Handles cmsMoveUp.Click
Dim node As TreeNode
Dim index As Integer
For Each node In tvNode.Nodes
If node.Text = tvNodeName Then
index = node.Index
Exit For
End If
Next
tvNode.Nodes.RemoveAt(index)
tvNode.Nodes.Insert(index + 1, node)
End Sub
Pro MoveDown bude jen v metodě Insert "-" místo "+".
Tím pádem může být reálně označený (Selected) jiný Node než, který chci přesunout.
Pokud je něco špatně prosím o kontrolu, ale takto mi to funguje.
|