我试图在c#中删除树视图中的一个特定节点。它应该执行以下操作:
让我们说" root - > path1 - > path1.1 - > path1.2"是树视图中的路径之一。当删除节点" path1"时,它应该只删除这个节点,而不是'#34; path1.1"和" path1.2"。根节点应该成为这两个节点的父节点。
到目前为止,我使用此代码删除了包含其所有子节点的节点:
treeView1.Nodes.Remove(node);
我有什么方法可以做到这一点吗?
答案 0 :(得分:1)
您可以更改这些节点'父母在删除他们当前的父母之前例如:
var selected = this.treeView1.SelectedNode;
TreeNodeCollection container;
if (selected.Parent == null)
container = treeView1.Nodes;
else
container = selected.Parent.Nodes;
var list = selected.Nodes.Cast<TreeNode>().ToList();
foreach (TreeNode n in list)
{
n.Remove();
container.Add(n);
}
selected.Remove();