Drag and drop operation between two treeview using vb.net

 
The following example demonstrates how to perform a drag and drop operation with tree nodes between two TreeView controls in vb.net

Example

this example requires one windows form that contains Two treeview controls named treeview1 and treeview2, Use the toolbox to add two TreeView controls to Form1. Change the AllowDrop property of both TreeView1 and TreeView2 to True in the Properties window.

Generate method handler for ItemDrag event of TreeView1 and use this code :

Private Sub TreeView1_ItemDrag(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles TreeView1.ItemDrag
        TreeView1.DoDragDrop(TreeView1.SelectedNode.Text, DragDropEffects.Move)
End Sub

Generate method handler for DragEnter event of TreeView2:

Private Sub TreeView2_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView2.DragEnter
        e.Effect = DragDropEffects.All
End Sub

Generate method handler for DragDrop event of TreeView2:

Private Sub TreeView2_DragDrop(ByVal sender As System.Object,  _
                      ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView2.DragDrop
        Dim str As String = CStr(e.Data.GetData(DataFormats.Text))
        Dim _Treenode As TreeNode
        Dim pt As Point
        pt = CType(sender, TreeView).PointToClient(New Point(e.X, e.Y))
        _Treenode = CType(sender, TreeView).GetNodeAt(pt)
        If _Treenode IsNot Nothing Then
            _Treenode.Nodes.Add(str)
        Else
            TreeView2.Nodes.Add(str)
        End If
End Sub