/ / encontrando e substituindo um nó de árvore em c # - c #, treeview

encontrando e substituindo um nó de árvore em c # - c #, treeview

Eu tenho um treeview no meu código c #. Eu quero substituir todas as ocorrências existentes de um nó de árvore com um texto diferente em toda a minha treeview em um clique de botão.

Por exemplo, eu tenho 3 ocorrências de um nó com"Texto" como "Manual". Eu quero substituir todos esses 3 nós pelo texto "Automatic". O problema é que esses 3 nós estão sob 3 ramificações diferentes no treeview. Eles não compartilham o mesmo nó pai. Eu pretendo escrever para tornar este processo automático, escrevendo um loop for, mas eu não entendo como encontrar os 3 nós necessários em primeiro lugar.

Respostas:

3 para resposta № 1

Eu sugeriria usar recursividade.

É claro que este é um exemplo e você precisaria remover a declaração do myTree e usar sua árvore, mas isso deve começar.

private void replaceInTreeView()
{
TreeView myTree = new TreeView();
ReplaceTextInAllNodes(myTree.Nodes, "REPLACEME", "WITHME");
}

private void ReplaceTextInAllNodes(TreeNodeCollection treeNodes, string textToReplace, string newText)
{
foreach(TreeNode aNode in treeNodes)
{
aNode.Text = aNode.Text.Replace(textToReplace, newText);

if(aNode.ChildNodes.Count > 0)
ReplaceTextInAllNodes(aNode.ChildNodes, textToReplace, newText);
}
}
}