VB.NET
<TreeListView> Node Drag And Drop
악마성
2020. 2. 12. 14:12
728x90
반응형
TreeListView Property 변경
AllowDrop = True
AllowDefaultDragDrop = True
ItemDragEventArgs
Private Sub treeView_ItemDarag(sender As Object, e As ItemDragEventArgs) Handles trv_Model.ItemDrag
If e.Button = MouseButtons.Left Then
DoDragDrop(e.Item, DragDropEffects.Move)
End If
End Sub
ItemDragEventArgs
Private Sub Drag_n_Drop_Functions(sender As Object, e As ItemDragEventArgs) Handles trv_Model.ItemDrop
Dim targetPoint As Point = DirectCast(e, WinControls.ListView.EventArgClasses.TreeListViewItemDropEventArgs).MousePosition
Dim targetNode As TreeListNode = DirectCast(e, WinControls.ListView.EventArgClasses.TreeListViewItemDropEventArgs).TargetNode
targetNode = trv_Model.GetItemAt(targetPoint)
Dim draggedNode As TreeListNode = DirectCast(e, EventArgClasses.TreeListViewItemDropEventArgs).Item(0)
Debug.Print(String.Format("Origin({2}) Rowindex : {0} ||| Index : {1}", draggedNode.RowIndex, draggedNode.Index, draggedNode.Text))
Debug.Print(String.Format("target({2}) Rowindex : {0} ||| Index : {1}", targetNode.RowIndex, targetNode.Index, targetNode.Text))
If draggedNode Is Nothing Or draggedNode Is Nothing Then Exit Sub
If Not (draggedNode.Equals(targetNode)) AndAlso Not ContainsNode(draggedNode, targetNode) Then
If draggedNode.Level = 3 AndAlso targetNode.Level = 3 Then
draggedNode.Remove()
targetNode.ParentNode.Nodes.Insert(draggedNode, targetNode.Index)
draggedNode.Expand()
End If
End If
End Sub
728x90
반응형