-1

我无法从树中删除“current_node”的父节点。这是我正在尝试的:我正在为 VSTO 使用 C# .NET 进行开发

TreeGridNode current_node = myTreeGrid.CurrentNode;
TreeGridNode parent_node = myTreeGrid.CurrentNode.Parent;
// this works
myTreeGrid.Nodes.Remove(current_node);

if (parent_node.Nodes.Count == 0) {
    // it never gets here, it doesn't detect that the lats child was just removed above
    myTreeGrid.Nodes.Remove(parent_node);
}

使用此自定义结构 http://blogs.msdn.com/b/markrideout/archive/2006/01/08/510700.aspx

4

1 回答 1

2

我相信你的问题是你试图从而不是父母 中current_node删除。不包含对 的引用,因此调用基本上什么都不做。myTreeGridcurrent_nodemyTreeGrid.Nodescurrent_nodemyTreeGrid.Nodes.Remove(current_node)

由于没有删除任何内容,因此parent_node.Nodes仍然包含对current_node. 尝试current_node直接从中删除parent_node.Nodes,您的问题可能会得到解决:

改变:

myTreeGrid.Nodes.Remove(current_node);

parent_node.Nodes.Remove(current_node);
于 2012-08-23T17:04:22.340 回答