我的 C# 代码中有一个树视图。我想在单击按钮时将整个树视图中出现的所有树节点替换为不同的文本。
例如,我有 3 次出现“文本”为“手动”的节点。我想用文本“自动”替换所有这 3 个节点。问题是这 3 个节点位于树视图中的 3 个不同分支下。它们不共享相同的父节点。我打算通过编写一个 for 循环来使这个过程自动化,但我不明白如何首先找到所需的 3 个节点。
我建议使用递归。
当然,这是一个示例,您需要删除 myTree 声明并使用您的树,但这应该可以帮助您入门。
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);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)