【发布时间】:2019-11-06 02:53:48
【问题描述】:
我正在递归搜索所有 treeview 的 父节点和子节点中的文本,但没有按预期工作。
请参阅下面的代码,其中我在父子节点的所有节点中搜索无法正常工作的文本。请指导我需要修复什么。
private void txtSerach_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (txtSerach.Text.Trim() != "")
{
if (treeView1.Nodes.Count > 0)
{
nodefound = false;
TreeNodeCollection nodes = treeView1.Nodes;
foreach (TreeNode n in nodes)
{
if (!nodefound)
PrintRecursive(n);
else
return;
}
}
}
}
}
bool nodefound = false;
private void PrintRecursive(TreeNode treeNode)
{
if (treeNode.Text.ToUpper().Contains(txtSerach.Text.ToUpper().ToString()))
{
treeView1.SelectedNode = treeNode;
treeView1.SelectedNode.Expand();
treeView1.Focus();
nodefound = true;
return;
}
foreach (TreeNode tn in treeNode.Nodes)
{
PrintRecursive(tn);
}
}
应在所有父节点和所有嵌套节点中搜索文本,如果找到,则应选择该节点。
谢谢
【问题讨论】:
-
您认为什么是“正确”,什么不是?我的意思是,请描述您期望的结果与您的代码产生的结果相比。