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;
    }
    }

  • 相关阅读:
    [转]给嵌入式系统工程师的十个建议
    About Career Links
    Oh My, JAVA?!
    All Maling-Lists
    ALSA Links
    [Music Links]
    [Android-Building]/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../liblzo2.so when searching for -llzo2
    Debugging for Unfortunately, the process android.process.media has stopped
    [Quote] How To Change, Customize & Create Android Boot Animation [Guide]
    Share folders on your local Windows PC to remote Linux PC
  • 原文地址:https://www.cnblogs.com/SharonHwang/p/5018833.html
Copyright © 2011-2022 走看看