在键入C#时查找我正在尝试模仿FireFox中地址栏(“bangbang”)中的“查找您键入的内容”功能。我想在文本框下方显示一个建议框,建议框包含一个包含文本框内容的字符串。我查看了普通WinForms文本框的自动完成功能,但它似乎只搜索字符串的开头。这里有没有人建造过或有过实施这样的东西的经验?编辑:一些澄清-这是一个WinForms项目。它需要在字符串中搜索,而不仅仅是在开头(如果我没记错的话,普通文本框就是这样做的)。建议应该像文本框自动完成一样显示在弹出窗口中。您需要处理文本输入字段的TextChanged事件,并在文本更改时启动一个将运行的新线程,该线程将应用新搜索。如果在返回结果之前文本发生变化,则直接杀死线程。如果线程及时返回结果,则显示它们。您可以稍微加强它(例如,在文本更改后等待一小段时间,以便用户可以键入单词而不会触发大量无用的线程)但基本上就是这样。之前有过关于这个话题的讨论,作者的结论是你最好自己完成整个事情。如何动态更改C#组合框或文本框中的自动完成条目?我做了一些模糊的事情,但更像是iTunes?搜索框而不是Awesomebar。我的控件使用文本框来主动过滤网格;所以它不适合自动完成。...但是...基本上我有一个包含所有匹配项目的DataView,每当TextBox的文本发生变化时,我都会更新过滤器以隐藏所有不匹配的项目。它工作正常,可能适合您过滤数据的需要——但不知道如何将它用作文本框的自动完成源。很久以前我没有为我的应用程序做这样的事情。我所做的是在一个新线程中创建我的搜索功能,所以每次我输入一个新字母时,它都会在另一个线程中调用搜索功能,这样我就可以继续输入。如果需要,我可以发布一些代码,但这应该足以让您入门。?在我注意到OP编辑??提到winforms之后,我一直感到羞愧并且讨厌删除它,但认为它对于那些来这里寻找相同但用于asp.net应用程序的人很有用。?只是因为没有人提到它,对于webforms应用程序,您肯定希望使用ajax(.net控件或纯JS,您的选择)来完成它。此功能通常称为“自动完成”,您不希望它通过在页面级别进行服务器往返来破坏无缝性。我建议你看看这个和这个。我在C#中使用了搜索键,如何在KeyUp上创建文本框回发?基本上,您使用keyup操作调用附加到触发器的回发来更新面板。然后使用数据视图或后端的任何东西在textbox_changed事件中更新。以上就是C#学习教程:在敲C#的时候找到所有分享的内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
