zoukankan      html  css  js  c++  java
  • TreeView使用

    1、添加节点,实现拖拽功能

    private void Form1_Load(object sender, EventArgs e)
    {
    TreeNode node1 = new TreeNode();
    node1.Text = "test1";
    TreeNode node2 = new TreeNode();
    node2.Text = "test2";

    TreeNode node11 = new TreeNode();
    node11.Text = "test11";
    TreeNode node12 = new TreeNode();
    node12.Text = "test12";

    TreeNode node21 = new TreeNode();
    node21.Text = "test21";

    node1.Nodes.Add(node11);
    node1.Nodes.Add(node12);

    node2.Nodes.Add(node21);

    treeView1.Nodes.Add(node1);
    treeView1.Nodes.Add(node2);

    this.treeView1.ExpandAll();//节点全部展开显示
    }

    #region 实现拖拽

    /// <summary>
    /// 用户开始拖动节点时发生事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
    {
    //开始拖放操作
    DoDragDrop(e.Item, DragDropEffects.Move);
    }

    /// <summary>
    /// 在将对象拖入控件的边界时发生事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void treeView1_DragEnter(object sender, DragEventArgs e)
    {
    if (e.Data.GetDataPresent(typeof(TreeNode)))
    {
    e.Effect = DragDropEffects.Move;
    }
    else
    {
    e.Effect = DragDropEffects.None;
    }
    }

    /// <summary>
    /// 完成拖放操作
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void treeView1_DragDrop(object sender, DragEventArgs e)
    {
    TreeNode myNode = null;
    if (e.Data.GetDataPresent(typeof(TreeNode)))
    {
    myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
    }
    else
    {
    MessageBox.Show("error");
    return;
    }
    Position.X = e.X;
    Position.Y = e.Y;
    Position = treeView1.PointToClient(Position);//记录目标节点位置
    TreeNode DropNode = this.treeView1.GetNodeAt(Position); //目标节点
    if (DropNode != null && DropNode.Parent != myNode && DropNode != myNode)
    {
    TreeNode DragNode = myNode;
    myNode.Remove();
    DropNode.Nodes.Add(DragNode);
    }
    //目标节点为根目录
    if (DropNode == null)
    {
    TreeNode DragNode = myNode;
    myNode.Remove();
    treeView1.Nodes.Add(myNode);
    }
    }

    #endregion

    /// <summary>
    /// 节点选中
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void treeView1_MouseDown(object sender, MouseEventArgs e)
    {
    treeView1.SelectedNode = this.treeView1.GetNodeAt(e.X, e.Y);
    if (treeView1.SelectedNode != null)
    {
    lbl_SelectedNode.Text = treeView1.SelectedNode.Text;
    }
    }

  • 相关阅读:
    linux环境weblogic开启远程调试
    C#相关资料
    pyqt5,pyside2学习过程中问题与疑惑记录--先记下问题,然后逐个解决
    任务记录-2020.10.1
    猜想:假如时间的快慢与物体的质量有关系。那长大之后,感觉时间过得越来越快,是不是大脑或者身体中某一个器官越长越大,然后导致时间越过越快。。。
    学习思路--学习一个新的东西,从哪些方面着手
    java bug记录
    记录要做的事情,把sql字符串替换写成工具网页。
    使用java代码本地测试远程rpc接口
    任务记录
  • 原文地址:https://www.cnblogs.com/SharonHwang/p/5018833.html
Copyright © 2011-2022 走看看