欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TreeView 树节点上移下移

程序员文章站 2022-06-08 09:16:34
...

需求:TreeView树节点上移下移

实现方案:
1.用到节点的PrevNode属性,获取上一个同级树节点。
2.用到节点的NextNode属性,获取下一个同级树节点。

    /// <summary>
    /// 选中节点上移方法
    /// </summary>
    /// <param name="node"></param>
    private void SetTreeNodeUp(object sender, EventArgs e)
    {
        TreeNode node = this.tvPrjInfo.SelectedNode;
        if ((node == null) || (node.PrevNode) == null)
            return;
        TreeNode newNode = (TreeNode)node.Clone();
        //节点的移动
        if (node.Parent != null)
            node.Parent.Nodes.Insert(node.PrevNode.Index, newNode);
        else
            node.TreeView.Nodes.Insert(node.PrevNode.Index, newNode);
        node.TreeView.SelectedNode = newNode;
        node.TreeView.Nodes.Remove(node);

    }
    /// <summary>
    /// 选中节点下移方法
    /// </summary>
    /// <param name="node"></param>
    private void SetTreeNodeDown(object sender, EventArgs e)
    {
        TreeNode node = this.tvPrjInfo.SelectedNode;
        if ((node == null) || (node.NextNode) == null) return;
        TreeNode newNode = (TreeNode)node.Clone();
        //节点的移动
        if (node.Parent != null)
            node.Parent.Nodes.Add(newNode);
        else
            node.TreeView.Nodes.Add(newNode);
        node.TreeView.SelectedNode = newNode;
        node.TreeView.Nodes.Remove(node);

    }

    #endregion