首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeNode Remove()不工作

TreeNode Remove()不工作
EN

Stack Overflow用户
提问于 2013-05-16 14:05:48
回答 1查看 1K关注 0票数 0

长话短说:

  • 我遍历一棵通用树,并根据过滤器将一些节点收集到列表中。
  • 在完成遍历之后,我开始逐个删除每个节点。

删除收集到的节点

代码语言:javascript
复制
foreach (TreeData nd in nodeBucket.Reverse<TreeData>())
{
    if (nd.node.Parent != null)
    {
        nd.node.Remove();
    }
}

这棵树大约有2000个节点。当所有节点都应该被删除时,有几个节点没有被删除,因此会调用Remove(),并且它们有一个空的父后缀。没有被删除的节点总是相同的。

也试过node.Parent.Nodes.Remove(node),没有运气。

代码语言:javascript
复制
tree.BeginUpdate();
tree.EndUpdate();
tree.Invalidate();
tree.Refresh();
tree.Update();

不起作用。

TreeData结构如下所示:

代码语言:javascript
复制
struct TreeData
{
    public TreeData( TreeNode node) 
    {
        this.node   = node;
        this.parent = node.Parent;
        this.level  = node.Level;
    }

    public TreeNode node;
    public TreeNode parent;
    public int level; 
}

问题修正了:这个问题与重复的节点有关(过滤是检查节点名称)。

EN

回答 1

Stack Overflow用户

发布于 2013-05-16 14:14:59

如果您想保留当前节点,但只需要删除子节点

代码语言:javascript
复制
While(node.Nodes.Count>0)
   node.Nodes[0].Remove();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16589646

复制
相关文章

相似问题

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