Es scheint für das Entfernen eines TreeNode, die ich zu seinem Elternteil durchlaufen muss, daher habe ich unten nur getan, um zu finden, dass die ursprüngliche Sammlung geändert wurde, obwohl es eine Instanz war. Unten ist der Code und tvRightTree
ist das TreeView vonSammlung wurde geändert; Aufzählungsoperation wird möglicherweise nicht ausgeführt. Treenode Remove
TreeNodeCollection checkedNodeCollection = tvRightTree.CheckedNodes;
foreach (TreeNode checkedNode in checkedNodeCollection) {
//if the to be removed node is parent then remove through treeview
if (checkedNode.Parent != null) {
//compiler does not allow modifying a collection that we iterate
//hence resort to finding the parent and then remove
TreeNode targetParent = tvRightTree.FindNode(checkedNode.Parent.ValuePath);
targetParent.ChildNodes.Remove(checkedNode);
} else
tvRightTree.Nodes.Remove(checkedNode);
}
Was ist der richtige Weg geprüft TreeNodes vom treeview zu entfernen?