1 private Point Position = new Point(0, 0);
2
3 private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
4 {
5 DoDragDrop(e.Item, DragDropEffects.Move);
6 }
7
8 private void treeView1_DragEnter(object sender, DragEventArgs e)
9 {
10 if (e.Data.GetDataPresent(typeof(TreeNode)))
11 e.Effect = DragDropEffects.Move;
12 else
13 e.Effect = DragDropEffects.None;
14 }
15
16 private void treeView1_DragDrop(object sender, DragEventArgs e)
17 {
18 TreeNode myNode = null;
19 if (e.Data.GetDataPresent(typeof(TreeNode)))
20 {
21 myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
22 }
23 else
24 {
25 MessageBox.Show("error");
26 }
27 Position.X = e.X;
28 Position.Y = e.Y;
29 Position = treeView1.PointToClient(Position);
30 TreeNode DropNode = this.treeView1.GetNodeAt(Position);
31 // 1.目标节点不是空。2.目标节点不是被拖拽接点的字节点。3.目标节点不是被拖拽节点本身
32 if (DropNode != null && DropNode.Parent != myNode && DropNode != myNode)
33 {
34 TreeNode DragNode = myNode;
35 // 将被拖拽节点从原来位置删除。
36 myNode.Remove();
37 // 在目标节点下增加被拖拽节点
38 DropNode.Nodes.Add(DragNode);
39 }
40 // 如果目标节点不存在,即拖拽的位置不存在节点,那么就将被拖拽节点放在根节点之下
41 if (DropNode == null)
42 {
43 TreeNode DragNode = myNode;
44 myNode.Remove();
45 treeView1.Nodes.Add(DragNode);
46 }
47 }
2
3 private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
4 {
5 DoDragDrop(e.Item, DragDropEffects.Move);
6 }
7
8 private void treeView1_DragEnter(object sender, DragEventArgs e)
9 {
10 if (e.Data.GetDataPresent(typeof(TreeNode)))
11 e.Effect = DragDropEffects.Move;
12 else
13 e.Effect = DragDropEffects.None;
14 }
15
16 private void treeView1_DragDrop(object sender, DragEventArgs e)
17 {
18 TreeNode myNode = null;
19 if (e.Data.GetDataPresent(typeof(TreeNode)))
20 {
21 myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
22 }
23 else
24 {
25 MessageBox.Show("error");
26 }
27 Position.X = e.X;
28 Position.Y = e.Y;
29 Position = treeView1.PointToClient(Position);
30 TreeNode DropNode = this.treeView1.GetNodeAt(Position);
31 // 1.目标节点不是空。2.目标节点不是被拖拽接点的字节点。3.目标节点不是被拖拽节点本身
32 if (DropNode != null && DropNode.Parent != myNode && DropNode != myNode)
33 {
34 TreeNode DragNode = myNode;
35 // 将被拖拽节点从原来位置删除。
36 myNode.Remove();
37 // 在目标节点下增加被拖拽节点
38 DropNode.Nodes.Add(DragNode);
39 }
40 // 如果目标节点不存在,即拖拽的位置不存在节点,那么就将被拖拽节点放在根节点之下
41 if (DropNode == null)
42 {
43 TreeNode DragNode = myNode;
44 myNode.Remove();
45 treeView1.Nodes.Add(DragNode);
46 }
47 }
浙公网安备 33010602011771号