C#实现TreeView节点拖拽的方法
程序员文章站
2022-06-30 10:19:28
本文实例讲述了c#实现treeview节点拖拽的方法。分享给大家供大家参考。具体如下:
public form1()
{
initializecompone...
本文实例讲述了c#实现treeview节点拖拽的方法。分享给大家供大家参考。具体如下:
public form1() { initializecomponent(); treeview1.allowdrop = true; treeview1.itemdrag += new itemdrageventhandler(treeview1_itemdrag); treeview1.dragenter += new drageventhandler(treeview1_dragenter); treeview1.dragdrop += new drageventhandler(treeview1_dragdrop); } void treeview1_dragdrop(object sender, drageventargs e) { treenode movenode = (treenode)e.data.getdata("system.windows.forms.treenode"); //根据鼠标坐标确定要移动到的目标节点 point pt; treenode targenode; pt = ((treeview)(sender)).pointtoclient(new point(e.x, e.y)); targenode = this.treeview1.getnodeat(pt); //如果目标节点无子节点则添加为同级节点,反之添加到下级节点的未端 treenode newmovenode = (treenode)movenode.clone(); if (targenode.nodes.count == 0) { targenode.parent.nodes.insert(targenode.index, newmovenode); } else { targenode.nodes.insert(targenode.nodes.count, newmovenode); } //更新当前拖动的节点选择 treeview1.selectednode = newmovenode; //展开目标节点,便于显示拖放效果 targenode.expand(); //移除拖放的节点 movenode.remove(); } void treeview1_dragenter(object sender, drageventargs e) { if (e.data.getdatapresent("system.windows.forms.treenode")) { e.effect = dragdropeffects.move; } else { e.effect = dragdropeffects.none; } } void treeview1_itemdrag(object sender, itemdrageventargs e) { if (e.button == mousebuttons.left) { dodragdrop(e.item, dragdropeffects.move); } }
希望本文所述对大家的c#程序设计有所帮助。
上一篇: composer安装的方法步骤(图文)
下一篇: Laravel框架路由与MVC实例详解