当前位置: 移动技术网 > IT编程>开发语言>.net > TreeView 节点拖拽

TreeView 节点拖拽

2018年09月05日  | 移动技术网IT编程  | 我要评论

the one歌词,学园默示录无修版,开讲啦王力宏

 1 public form1()
 2 {
 3  initializecomponent();
 4  treeview1.allowdrop = true;
 5  treeview1.itemdrag += new itemdrageventhandler(treeview1_itemdrag);
 6  treeview1.dragenter += new drageventhandler(treeview1_dragenter);
 7  treeview1.dragdrop += new drageventhandler(treeview1_dragdrop);
 8 }
 9 void treeview1_dragdrop(object sender, drageventargs e)
10 {
11  treenode movenode = (treenode)e.data.getdata("system.windows.forms.treenode");
12  //根据鼠标坐标确定要移动到的目标节点
13  point pt;
14  treenode targenode;
15  pt = ((treeview)(sender)).pointtoclient(new point(e.x, e.y));
16  targenode = this.treeview1.getnodeat(pt);
17  //如果目标节点无子节点则添加为同级节点,反之添加到下级节点的未端
18  treenode newmovenode = (treenode)movenode.clone();
19  if (targenode.nodes.count == 0)
20  {
21   targenode.parent.nodes.insert(targenode.index, newmovenode);
22  }
23  else
24  {
25   targenode.nodes.insert(targenode.nodes.count, newmovenode);
26  }
27  //更新当前拖动的节点选择
28  treeview1.selectednode = newmovenode;
29  //展开目标节点,便于显示拖放效果
30  targenode.expand();
31  //移除拖放的节点
32  movenode.remove();
33 }
34 void treeview1_dragenter(object sender, drageventargs e)
35 {
36  if (e.data.getdatapresent("system.windows.forms.treenode"))
37  {
38   e.effect = dragdropeffects.move;
39  }
40  else
41  {
42   e.effect = dragdropeffects.none;
43  }
44 }
45 void treeview1_itemdrag(object sender, itemdrageventargs e)
46 {
47  if (e.button == mousebuttons.left)
48  {
49   dodragdrop(e.item, dragdropeffects.move);
50  }
51 }

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网