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 № 1Eu 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);
}
}
}