我想在TreeView通过点右键中的“上移”,把当前选择结点向上移.TreeNode newNode1=treeView1.SelectedNode;//当前选择的node
---这后面如何写啊!暂时只考虑在同级中。

解决方案 »

  1.   

    private void SetTreeNodeUp(System.Windows.Forms.TreeNode node)
    {
    if ((node==null)||(node.PrevNode)==null) return;
    System.Windows.Forms.TreeNode newNode=(System.Windows.Forms.TreeNode)node.Clone();

    if (node.Parent!=null)
    node.Parent.Nodes.Insert(node.PrevNode.Index,newNode);
                else
    node.TreeView.Nodes.Insert(node.PrevNode.Index,newNode); this.treeView1.Nodes.Remove(node);
    }
    private void menuItem1_Click(object sender, System.EventArgs e)
    {
    SetTreeNodeUp(this.treeView1.SelectedNode);
    }
      

  2.   

    感谢 jinjazz(近身剪(充电中...)) ,上移分类可以了,我按你的方法做成下移分类,为何不行 public static void SetTreeNodeDown(System.Windows.Forms.TreeNode node,TreeView treeView1)
    {
    if ((node==null)||(node.NextNode)==null) return;
    System.Windows.Forms.TreeNode newNode=(System.Windows.Forms.TreeNode)node.Clone();

    if (node.NextNode!=null)
    node.Parent.Nodes.Insert(node.NextNode.Index,newNode);
    else
    node.TreeView.Nodes.Insert(node.NextNode.Index,newNode); treeView1.Nodes.Remove(node);
    }
      

  3.   

    private void SetTreeNodeUp(System.Windows.Forms.TreeNode node)
    {
    if ((node==null)||(node.PrevNode)==null) return;
    System.Windows.Forms.TreeNode newNode=(System.Windows.Forms.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); }
    private void SetTreeNodeDown(System.Windows.Forms.TreeNode node)
    {
    if ((node==null)||(node.NextNode)==null) return;
    System.Windows.Forms.TreeNode newNode=(System.Windows.Forms.TreeNode)node.Clone();

    if (node.NextNode.NextNode!=null)
    if (node.Parent!=null)
                        node.Parent.Nodes.Insert(node.NextNode.NextNode.Index,newNode);
    else
    node.TreeView.Nodes.Insert(node.NextNode.NextNode.Index,newNode);
    else
    if (node.Parent!=null)
    node.Parent.Nodes.Add(newNode);
    else
    node.TreeView.Nodes.Add(newNode);
    node.TreeView.SelectedNode=newNode;
    node.TreeView.Nodes.Remove(node); }