首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改树节点的顺序

如何更改树节点的顺序
EN

Stack Overflow用户
提问于 2011-06-01 22:54:24
回答 4查看 6.7K关注 0票数 7

我想在同一级别上更改System.Windows.Forms.TreeNodes的顺序。

关于如何在.net-2.0中做到这一点的任何建议。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-02 00:01:35

代码语言:javascript
复制
void MoveNodeUp(TreeNode node)
{
  TreeNode parentNode = node.Parent;
  int originalIndex = node.Index;
  if (node.Index == 0) return;
  TreeNode ClonedNode = (TreeNode)node.Clone();
  node.Remove();
  parentNode.Nodes.Insert(originalIndex - 1, ClonedNode);
  parentNode.TreeView.SelectedNode = ClonedNode;
  }
票数 3
EN

Stack Overflow用户

发布于 2011-06-01 23:38:48

您需要操作TreeView的Nodes集合。参见TreeNodeCollection

如果您有三个树节点,并且您想要将最后一个节点移到前面,例如:(注意:未测试代码,但显示了想法)

代码语言:javascript
复制
var lastNode = MyTreeView.Nodes[2];
MyTreeView.Nodes.Remove(lastNode);
MyTreeView.Nodes.Insert(0, lastNode);
票数 7
EN

Stack Overflow用户

发布于 2014-03-17 01:19:04

这就是我写的:

代码语言:javascript
复制
    public void MoveNode(TreeView tv, TreeNode node, bool up)
    {

        if ((node.PrevNode == null) && up) {
            return;
        }

        if ((node.NextNode == null) && !up) {
            return; 
        }

        int newIndex = up ? node.Index - 1 : node.Index + 1;

        var nodes = tv.Nodes; 
        if (node.Parent != null) {
            nodes = node.Parent.Nodes;
        }

        nodes.Remove(node);
        nodes.Insert(newIndex, node); 

    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6203193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档