控件之间拖放操作-----实现Treeview到Treeview
2007-08-09 10:00
399 查看
要求:新建一From窗体,放两个TreeView控件,TreeView1,TreeView2
1>实始化树节点.
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
Dim mNode As TreeNode = Me.TreeView1.Nodes.Add("Fruits")
mNode.Nodes.Add("Apple")
mNode.Nodes.Add("Peach")
mNode.Expand()
mNode = Me.TreeView2.Nodes.Add("Vegetables")
mNode.Nodes.Add("Tomato")
mNode.Nodes.Add("Eggplant")
mNode.Expand()
Me.TreeView1.AllowDrop = True
Me.TreeView2.AllowDrop = True
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
2>Treeview1的MouseDown事件
Private Sub TreeView1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseDown
Try
Dim mTree As TreeView = sender
Dim mNode As TreeNode = mTree.GetNodeAt(e.X, e.Y)
mTree.SelectedNode = mNode
If Not mNode Is Nothing Then
mTree.DoDragDrop(mNode.Clone, DragDropEffects.Copy)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
3>TreeView2的DragOver事件
Private Sub TreeView2_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView2.DragOver
Try
Dim Tree As TreeView = sender
e.Effect = DragDropEffects.None
If Not CType(e.Data.GetData(GetType(TreeNode)), TreeNode) Is Nothing Then
Dim pt As Point = New Point(e.X, e.Y)
pt = Tree.PointToClient(pt)
Dim mNode As TreeNode = Tree.GetNodeAt(pt)
If Not mNode Is Nothing Then
e.Effect = DragDropEffects.Copy
Tree.SelectedNode = mNode
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
4>TreeView2的DragDrop事件
Private Sub TreeView2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView2.DragDrop
Try
Dim Tree As TreeView = sender
Dim pt As Point = New Point(e.X, e.Y)
pt = Tree.PointToClient(pt)
Dim mNode As TreeNode = Tree.GetNodeAt(pt)
mNode.Nodes.Add(CType(e.Data.GetData(GetType(TreeNode)), TreeNode))
mNode.Expand()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
5>F5执行.拖放的效果就出来了.
1>实始化树节点.
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
Dim mNode As TreeNode = Me.TreeView1.Nodes.Add("Fruits")
mNode.Nodes.Add("Apple")
mNode.Nodes.Add("Peach")
mNode.Expand()
mNode = Me.TreeView2.Nodes.Add("Vegetables")
mNode.Nodes.Add("Tomato")
mNode.Nodes.Add("Eggplant")
mNode.Expand()
Me.TreeView1.AllowDrop = True
Me.TreeView2.AllowDrop = True
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
2>Treeview1的MouseDown事件
Private Sub TreeView1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseDown
Try
Dim mTree As TreeView = sender
Dim mNode As TreeNode = mTree.GetNodeAt(e.X, e.Y)
mTree.SelectedNode = mNode
If Not mNode Is Nothing Then
mTree.DoDragDrop(mNode.Clone, DragDropEffects.Copy)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
3>TreeView2的DragOver事件
Private Sub TreeView2_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView2.DragOver
Try
Dim Tree As TreeView = sender
e.Effect = DragDropEffects.None
If Not CType(e.Data.GetData(GetType(TreeNode)), TreeNode) Is Nothing Then
Dim pt As Point = New Point(e.X, e.Y)
pt = Tree.PointToClient(pt)
Dim mNode As TreeNode = Tree.GetNodeAt(pt)
If Not mNode Is Nothing Then
e.Effect = DragDropEffects.Copy
Tree.SelectedNode = mNode
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
4>TreeView2的DragDrop事件
Private Sub TreeView2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView2.DragDrop
Try
Dim Tree As TreeView = sender
Dim pt As Point = New Point(e.X, e.Y)
pt = Tree.PointToClient(pt)
Dim mNode As TreeNode = Tree.GetNodeAt(pt)
mNode.Nodes.Add(CType(e.Data.GetData(GetType(TreeNode)), TreeNode))
mNode.Expand()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
5>F5执行.拖放的效果就出来了.
相关文章推荐
- 控件之间拖放操作(二)-----实现Treeview节点到DataGridView
- C#中父窗口和子窗口之间实现控件互操作
- C++ Builder 实现控件拖放操作
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- 用jQuery实现asp.net 2.0 treeview控件完全无刷新操作实例(AJAX的增、删、改、选择以及展开收缩节点)
- <转载>C#中父窗口和子窗口之间实现控件互操作
- c#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- Visual C#实现父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作
- C#中父子窗口之间实现控件互操作
- c#中父窗口和子窗口之间实现控件互操作
- 在Telerik for silverlight控件radtreeview、textBox、RadGridView中实现拖拉控件的操作
- 拖放操作-实现Treeview到Treeview和DataGridView到Treeview
- C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作 (转载)
- Visual C#中父窗口和子窗口之间实现控件互操作
- C#中父窗口和子窗口之间实现控件互操作