C# 在treeview1中根据textbox5的值进行模糊查找并能寻找下一个包含该文本的节点选中的节点背景为黄色没选中的恢复为白色
以下是一个示例的C#代码,它实现了在TreeView中根据TextBox的值进行模糊查找,并选中下一个包含该文本的节点,并将选中的节点背景设置为黄色,未选中的节点背景恢复为白色:
private void button1_Click(object sender, EventArgs e)
{
string searchText = textBox5.Text;
if (!string.IsNullOrEmpty(searchText))
{
FindAndSelectNode(treeView1.Nodes, searchText);
}
}
private bool FindAndSelectNode(TreeNodeCollection nodes, string searchText)
{
foreach (TreeNode node in nodes)
{
if (node.Text.Contains(searchText))
{
treeView1.SelectedNode = node;
treeView1.SelectedNode.BackColor = Color.Yellow;
return true;
}
if (FindAndSelectNode(node.Nodes, searchText))
{
return true;
}
}
return false;
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
ResetNodeBackground(treeView1.Nodes);
}
private void ResetNodeBackground(TreeNodeCollection nodes)
{
foreach (TreeNode node in nodes)
{
node.BackColor = Color.White;
ResetNodeBackground(node.Nodes);
}
}
在上述代码中,通过点击按钮触发的button1_Click事件来执行模糊查找和选择节点的操作。FindAndSelectNode方法用于递归遍历TreeView中的节点,检查节点文本是否包含搜索文本,如果找到匹配的节点,则将其设为选中节点,并设置背景颜色为黄色。然后,在TreeView的AfterSelect事件中调用ResetNodeBackground方法来恢复所有节点的背景颜色为白色。
请注意,此示例只会选择第一个匹配的节点,如果要实现选中下一个匹配的节点,可以根据当前选中节点的索引来查找下一个匹配的节点,并选中它
原文地址: https://www.cveoy.top/t/topic/isUN 著作权归作者所有。请勿转载和采集!