• 拖拽TreeView节点


    private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
    {
        DoDragDrop(e.Item, DragDropEffects.Move);
    }
    
    private void treeView1_DragEnter(object sender, DragEventArgs e)
    {
        e.Effect = DragDropEffects.Move;
    }
    
    private void treeView1_DragDrop(object sender, DragEventArgs e)
    {
        Point targetPoint = treeView1.PointToClient(new Point(e.X, e.Y));
        TreeNode targetNode = treeView1.GetNodeAt(targetPoint);
        TreeNode draggedNode = (TreeNode)e.Data.GetData(typeof(TreeNode));
        if (draggedNode == null)
        {
            return;
        }
        if (targetNode == null)
        {
            draggedNode.Remove();
            treeView1.Nodes.Insert(targetNode.Index, draggedNode);
        }
        else
        {
            TreeNode parentNode = targetNode;
            if (!draggedNode.Equals(targetNode) && targetNode != null)
            {
                bool canDrop = true;
                while (canDrop && (parentNode != null))
                {
                    canDrop = !Object.ReferenceEquals(draggedNode, parentNode);
                    parentNode = parentNode.Parent;
                }
                if (canDrop)
                {
                    TreeNode treeNode = draggedNode.Parent;
                    int index = draggedNode.Index;
                    if (index < targetNode.Index)
                    {
                        return;
                    }
                    draggedNode.Remove();
                    treeNode.Nodes.Insert(targetNode.Index, draggedNode);
                    targetNode.Remove();
                    treeNode.Nodes.Insert(index, targetNode);
                }
            }
        }
        treeView1.SelectedNode = draggedNode;
    }
    
    private void Form1_Load(object sender, EventArgs e)
    {
        treeView1.AllowDrop = true;
    }

    测试结果:

  • 相关阅读:
    这里下载QT速度飞快QT下载(多种下载通道+所有版本)
    一个查找窗口和子窗口的MFC类
    office 2007 安装和激活
    kafaka安装和使用及分析
    flume安装和使用
    Hbase的使用和分析
    Nginx源码安装
    hadoop集群下安装hive
    hadoop集群(完全分布式)下hbase的安装和配置
    linux下时区设置和时间同步
  • 原文地址:https://www.cnblogs.com/jizhiqiliao/p/11232885.html
Copyright © 2020-2023  润新知