Private Sub TreeView1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragDrop
If TreeView1.SelectedNode Is Nothing Then Return
'返回鼠标在控件中的位置
Dim p As Point = TreeView1.PointToClient(New Point(e.X, e.Y))
'把鼠标放置位置转换为项
Dim dragToNode As TreeNode = TreeView1.GetNodeAt(p.X, p.Y)
If dragToNode Is Nothing Then Return
'检查是不是把父节点拖放到子节点,不允许父节点拖放到它之下的子节点
Dim CheckNode As TreeNode = dragToNode.Parent
Do Until CheckNode Is Nothing
If CheckNode Is TreeView1.SelectedNode Then
MessageBox.Show("不允许拖放父节点到子节点", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If
CheckNode = CheckNode.Parent
Loop
'在目标位置插入拖到的项
Dim insertIndex As Integer = dragToNode.Index
Dim insertNode As TreeNode = CType(TreeView1.SelectedNode.Clone, TreeNode)
If dragToNode.Parent Is Nothing Then
TreeView1.Nodes.Insert(insertIndex, insertNode)
Else
dragToNode.Parent.Nodes.Insert(insertIndex, insertNode)
End If
'http://www.qqread.com/book/myvbnet/my0058.html
'移除移动的节点
TreeView1.SelectedNode.Remove()
End Sub
URL查看 http://www.qqread.com/book/myvbnet/my0058.html相关专题
- .NET移动与嵌入式技术 (5963篇文章)
- .NET开发手册 (5664篇文章)
- 用vb.net实现闹钟提醒程序 (9次浏览)
- vb.net GDI+入门——画笔、画刷和颜色 (3次浏览)
- VB.Net实现进程监视器的方法 (1次浏览)
- VB2005中开发新一代控制台应用程序(3) (0次浏览)
- vb.net使用ListView 控件显示系统驱动器 (0次浏览)
- vb.net入门——ListView 控件的使用 (0次浏览)
- vb.net GDI+入门——使用Graphics对象填充图形 (0次浏览)
- .Net中ListView控件多选时复选框自动选择问题 (0次浏览)
- vb.net GDI+入门——使用Graphics对象绘制线图 (0次浏览)
- vb.net GDI+入门——了解Font类 (0次浏览)



