然后在treeview 的 DragEnter 中接收托放。
最后在treeview的 DragDrop 中处理托放结果。
注:treeview的allowdrop属性要设置为 true。
:
1
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
2
{
3
if (e.Button == MouseButtons.Right)
4
{
5
DataGridView.HitTestInfo info = dataGridView1.HitTest(e.X, e.Y);
6
7
if (info.RowIndex >= 0)
8
{
9
DataGridViewRow dr = (DataGridViewRow)
10
dataGridView1.Rows[info.RowIndex];
11
if (dr != null)
12
dataGridView1.DoDragDrop(dr, DragDropEffects.Copy);
13
}
14
}
15
}
16
17
private void treeView1_DragEnter(object sender, DragEventArgs e)
18
{
19
e.Effect = DragDropEffects.Copy;
20
}
21
22
private void treeView1_DragDrop(object sender, DragEventArgs e)
23
{
24
if (e.Data.GetDataPresent(typeof(DataGridViewRow)))
25
{
26
Point p = treeView1.PointToClient(new Point(e.X, e.Y));
27
TreeViewHitTestInfo index = treeView1.HitTest(p);
28
29
if (index.Node != null)
30
{
31
32
DataGridViewRow drv = (DataGridViewRow)e.Data.GetData(typeof(DataGridViewRow));
33
index.Node.Text = "Drop: " + drv.Cells[0].ToString();
34
35
}
36
}
37
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37
