TeeView中实现节点的上下移动(C#)

本文介绍了一个使用C#实现的TreeView节点上下移动的功能。通过遍历TreeView的节点集合,找到选中节点的位置,并实现节点位置的交换。具体包括获取选中节点的索引及调整节点顺序的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private void menuItem3_Click(object sender, System.EventArgs e)
  {
   if(this.treeView1.SelectedNode.Parent!=null)
   {
    this.treeView1.BeginUpdate();
    int j= getSelectIndex();
    int tempindex = j;
    TreeNodeCollection tempNodes = this.treeView1.SelectedNode.Parent.Nodes;
    TreeNode tempNode;
    if(j>0)
    {
     for(int i=0;i<tempNodes.Count;i++)
     {
      
      if(0==j-1)
      {
       tempNode = tempNodes[1];
       tempNodes[1].Remove();
       tempNodes.Add( tempNode);

      }
      else if(0==j)
      {
       tempNode = tempNodes[0];
       tempNodes[0].Remove();
       tempNodes.Add( tempNode);
      }
      else
      {
       tempNode = tempNodes[0];
       tempNodes[0].Remove();
       tempNodes.Add( tempNode);
      }
      j--;
     }
    }
    this.treeView1.SelectedNode = tempNodes[tempindex-1];
    this.treeView1.EndUpdate();

   }


  }
  private int getSelectIndex()
  {
   if(this.treeView1.SelectedNode.Parent!=null)
   {
    TreeNodeCollection tempNodes = this.treeView1.SelectedNode.Parent.Nodes;
    for(int i=0;i<tempNodes.Count;i++)
    {
     if( tempNodes[i]==this.treeView1.SelectedNode)
      return i;
    }

   }
   return -1;
  }

  private void menuItem4_Click(object sender, System.EventArgs e)
  {
   if(this.treeView1.SelectedNode.Parent!=null)
   {
    this.treeView1.BeginUpdate();
    int j= getSelectIndex();
    int tempindex = j;
    TreeNodeCollection tempNodes = this.treeView1.SelectedNode.Parent.Nodes;
    TreeNode tempNode;
    if(j<tempNodes.Count-1)
    {
     for(int i=0;i<tempNodes.Count;i++)
     {
      
      if(0==j)
      {
       tempNode = tempNodes[1];
       tempNodes[1].Remove();
       tempNodes.Add( tempNode);

      }
       //      else if(0==j)
       //      {
       //       tempNode = tempNodes[0];
       //       tempNodes[0].Remove();
       //       tempNodes.Add( tempNode);
       //      }
      else
      {
       tempNode = tempNodes[0];
       tempNodes[0].Remove();
       tempNodes.Add( tempNode);
      }
      j--;
     }
    }
    this.treeView1.SelectedNode = tempNodes[tempindex+1];
    this.treeView1.EndUpdate();
   }
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值