Чтобы полностью заменить TreeNode
, вам необходимо удалить старый узел из коллекции Nodes
родительского узла и вставить новый в то же место:
private void ReplaceNode(TreeNode oldNode, TreeNode newNode)
{
int index = oldNode.Index;
TreeNodeCollection nodesCollection = oldNode.Parent.Nodes;
nodesCollection.RemoveAt(index);
nodesCollection.Insert(index, newNode);
}
Используя вышеуказанный метод в своем коде, вы можете изменить свой код следующим образом:
if ((selectedNode.Nodes.Count == 0) || refreshAllNodes)
{
selectedNode.Text += emptyNodeTempText;
this.ActionWalk((uint)tag["task0"], bufferedNode, 5);
ReplaceNode(selectedNode, bufferedNode); // -- should work.
...
}
Обратите внимание, что selectedNode
по-прежнему будет ссылаться на старый узел после его замены.