.net C# Treeview的Node拖动,Node节点上下移动

原创 2008年10月15日 21:20:00
定义一个TreeView 名字为TVdepartment,设置allowdrop为True
//移动代码

        
private void MiMoveUp_Click(object sender, EventArgs e) //向上移动
        {
            
//by 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2007.10.10
            TreeNode Node = TVdepartment.SelectedNode;
            TreeNode PrevNode 
= Node.PrevNode;
            
if (PrevNode != null)
            
{

                TreeNode NewNode 
= (TreeNode)Node.Clone();
                
if (Node.Parent == null)
                
{
                    TVdepartment.Nodes.Insert(PrevNode.Index, NewNode);
                }

                
else
                
{
                    Node.Parent.Nodes.Insert(PrevNode.Index, NewNode);
                }

                Node.Remove();
                TVdepartment.SelectedNode 
= NewNode;


            }



        }

        
private void MiMoveDown_Click(object sender, EventArgs e)//向下移动
        {
            
//by 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2007.10.10
            TreeNode Node = TVdepartment.SelectedNode;
            TreeNode NextNode 
= Node.NextNode;
            
if (NextNode != null)
            
{

                TreeNode NewNode 
= (TreeNode)Node.Clone();
                
if (Node.Parent == null)
                
{
                    TVdepartment.Nodes.Insert(NextNode.Index 
+ 1, NewNode);
                }

                
else
                
{
                    Node.Parent.Nodes.Insert(NextNode.Index 
+ 1, NewNode);
                }

                Node.Remove();
                TVdepartment.SelectedNode 
= NewNode;


            }

        }

        
//拖动代码
        private void TVdepartment_ItemDrag(object sender, ItemDragEventArgs e)//左键拖动
        {
            
if (e.Button == MouseButtons.Left)
            
{
                DoDragDrop(e.Item, DragDropEffects.Move);
            }


        }


        
private void TVdepartment_DragEnter(object sender, DragEventArgs e)
        
{
            
if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode"))
            
{
                e.Effect 
= DragDropEffects.Move;
            }

            
else
            
{
                e.Effect 
= DragDropEffects.None;
            }


        }


        
private void TVdepartment_DragDrop(object sender, DragEventArgs e)//拖动
        {
            
//by 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2007.10.10
            
//获得拖放中的节点
            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.TVdepartment.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);
            }

            
//更新当前拖动的节点选择
            TVdepartment.SelectedNode = NewMoveNode;
            
//展开目标节点,便于显示拖放效果
            targeNode.Expand();

            
//移除拖放的节点
            moveNode.Remove();


        }

在TreeView节点“上移”“下移”

private void SetTreeNodeUp(System.Windows.Forms.TreeNode node) { if ((node==null)||(node.PrevNod...
  • zjlovety
  • zjlovety
  • 2014年03月10日 00:03
  • 823

treeview节点拖动

网上找的有一个BUG,就是父节点为空时会出错,已经修正 把treeview改名为tvList,并把AllowDrop设置为True,然后添加以下代码: private void tvList_Drag...
  • rztyfx
  • rztyfx
  • 2015年06月21日 22:11
  • 1115

.net C# Treeview的Node拖动,Node节点上下移动

定义一个TreeView 名字为TVdepartment,设置allowdrop为True //移动代码
  • chlyzone
  • chlyzone
  • 2012年09月14日 11:38
  • 828

C# TreeNode的使用

添加节点 private void Form1_Load(object sender, EventArgs e) { treeView1.Labe...
  • ya24241
  • ya24241
  • 2014年12月10日 16:54
  • 752

网站导航——网站地图和TreeView的使用

ASP.NET站点导航能够在一个中央位置存储指向所有页面的连接,并在列表中呈现这些连接,也可以使用一个特定的Web服务器控件在每个页面上呈现导航菜单。设计站点导航时,使用站点地图描述站点的逻辑结构,使...
  • zc707212993
  • zc707212993
  • 2013年05月12日 19:44
  • 883

C# TreeView的使用以及节点的拖动

在项目中需要使用TreeView,TreeView中的节点是需要监控的视频站点,当拖动TreeView中的节点到Winform中的显示窗口时,可以实现该节点对应的站点的监控,摄像机转动等功能。 在实...
  • u011974126
  • u011974126
  • 2015年07月23日 11:03
  • 2072

$.tree 的简单使用

var url = 'mkController.do?getYsszmkTree&ysid=${ysid}&type=${type}'; var treeData; $.ajax({ a...
  • kuangfengbuyi
  • kuangfengbuyi
  • 2015年03月03日 15:25
  • 6415

Easyui Treegrid 上下移动实现

最近项目用到easyui的treegrid,也在网上找了下没有有效的行上下移的方法,于是自己琢磨出来给大家分享下 首先是项目框架 点击下移之后 当然上移也是可以的,下面看看代码 function ...
  • guichang2010
  • guichang2010
  • 2015年09月01日 11:25
  • 3264

.net服务器控件使用总结之TreeView

使用TreeView控件有三种方式 方式一:在控件属性里面写死。       应用场景:在数据一成不变的情况下,可以使用。实际项目中极少使用。 方式二:通过xml文件读取目录。       应...
  • yuchang2012
  • yuchang2012
  • 2013年10月18日 14:59
  • 990

分享安装VS2010 SP1与ASP.NET MVC4详细步骤

说来惭愧,用VS2008一直用到上周,因为PC上面最开始装的就是VS2008,卸载也比较麻烦,因为太多了组件了,担心卸载不干净的话后面的新版本又安装不了就麻烦了,毕竟上市公司里面管理的比较严格,总不能...
  • CsethCRM
  • CsethCRM
  • 2014年01月22日 13:51
  • 12178
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.net C# Treeview的Node拖动,Node节点上下移动
举报原因:
原因补充:

(最多只允许输入30个字)