c# - 在 C# 中键入时查找

标签 c# .net

我正在尝试模拟“键入时查找”功能,就像 FireFox 中的地址栏(“awesome bar”)一样。我想要一个建议框出现在文本框下方,并且建议框包含包含文本框中内容的字符串。我查看了普通 WinForms 文本框的自动完成功能,但它似乎只搜索字符串的开头。

这里有没有人构建过这样的东西或者有过实现这样的东西的经验?

编辑: 一些澄清 - 这是一个 WinForms 项目。 它需要在字符串内搜索,而不仅仅是开头(如果我没记错的话,这是普通文本框所做的)。建议应该显示在弹出窗口中,例如文本框自动完成。

最佳答案

您需要为您的文本输入字段处理 TextChanged 事件,并且当文本更改时,启动一个运行的新线程以应用新搜索。如果在您得到结果之前文本发生了变化,只需终止线程即可。如果线程及时返回结果,则显示它们。

您可以稍微高级一点(例如,在文本更改后等待一小段时间,以便用户可以键入单词,而不会触发无用线程的负载),但基本上仅此而已。

关于c# - 在 C# 中键入时查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121431/

相关文章:

c# - 与硬编码整数值相比,使用整数变量时 Linq to SQL 查询非常慢

.net - 未找到框架 ".NETFramework,Version=v4.6.2"的引用程序集

c# - 上传图像以训练自定义视觉时出现未经授权的异常

.net - WCF 数据服务和 self 跟踪实体

.net - Compact Framework - Image.FromStream (Stream, Boolean, Boolean) 的任何实现?

c# - WPF 堆栈面板显示隐藏子项

c# - XML文件中的隐形差异——破解自制XML解析器

c# - IIS 10.0 详细错误 - 404.0 - 未找到 - Windows 10 更新后

c# - Parallel.ForEach 会按照 MaxDegreeOfParallelism=1 的顺序进行处理吗?

c# - 列表框项的背景颜色(Windows 窗体)