如何使TextBox的自动完成列表可编辑?

时间:2009-06-03 22:11:06

标签: c# .net textbox autocomplete

我的应用程序包含许多使用自动完成功能的TextBox控件。每个人都使用AutoCompleteMode.CustomSource从关联的AutoCompleteStringCollection获取自动填充文字。

每当用户在TextBox中输入新值时,它就会被添加到关联的AutoCompleteStringCollection中,并且在会话结束时,所有这些集合都会持久保存到用户家中的文件中。目录

问题在于无法纠正这些集合中的错误。在IE中,具有自动完成控件的输入控件允许您滚动到自动完成列表中的项目,然后按Del将其删除。这在.NET控件中不起作用。

我真的很想避免为此实现我自己的UI。我被困了?有没有办法实现我没有看到的?

1 个答案:

答案 0 :(得分:2)

开箱即用,不幸的是,没有什么可以为你做的。我尝试了P / Invoking基本的FindWindowEx / EnumChildWindows,看看我是否能得到一个Handle到实际的下拉,但是没有成功(如果有人设法将其拉下来,请告诉我!)。好消息是(不太好,但并不可怕),自动完成实际上并不是你必须自己实现的东西,实际上有一个名为SHAutoComplete的Win32函数可以通过P / Invoked来帮助你自动完成。不要太兴奋,因为它不像P / Invoking它那样简单并且完成它。但是,有一个很棒的CodeProject article可以帮助你。