C# TreeView 模糊查找下一个包含指定文本的节点
以下是一个示例代码,该代码在TreeView控件中模糊搜索并选择下一个包含指定文本的节点:\n\ncsharp\nprivate void btnSearch_Click(object sender, EventArgs e)\n{\n string searchText = textBox5.Text.Trim();\n \n // 检查搜索文本是否为空\n if (string.IsNullOrEmpty(searchText))\n {\n MessageBox.Show("请输入搜索文本");\n return;\n }\n \n // 开始搜索\n TreeNodeCollection nodes = treeView1.Nodes;\n TreeNode currentNode = treeView1.SelectedNode;\n \n // 获取下一个节点的索引\n int startIndex = (currentNode != null) ? currentNode.Index + 1 : 0;\n \n // 从startIndex开始遍历节点\n for (int i = startIndex; i < nodes.Count; i++)\n {\n TreeNode node = FindNodeByText(nodes[i], searchText);\n \n if (node != null)\n {\n // 选择找到的节点\n treeView1.SelectedNode = node;\n node.EnsureVisible();\n return;\n }\n }\n \n MessageBox.Show("未找到匹配的节点");\n}\n\nprivate TreeNode FindNodeByText(TreeNode parentNode, string searchText)\n{\n // 检查当前节点是否匹配搜索文本\n if (parentNode.Text.Contains(searchText))\n {\n return parentNode;\n }\n \n // 递归搜索子节点\n foreach (TreeNode childNode in parentNode.Nodes)\n {\n TreeNode resultNode = FindNodeByText(childNode, searchText);\n \n if (resultNode != null)\n {\n return resultNode;\n }\n }\n \n return null;\n}\n\n\n在此示例中,我们使用FindNodeByText方法来递归搜索TreeView的节点。btnSearch_Click方法会根据指定的搜索文本从当前选定节点的下一个节点开始搜索,并选择下一个包含搜索文本的节点。如果找到匹配的节点,它将被选中并滚动到可见区域。如果未找到匹配的节点,它将显示一个消息框。
原文地址: http://www.cveoy.top/t/topic/qaqw 著作权归作者所有。请勿转载和采集!