Как сделать список автозаполнения для редактируемого TextBox? - PullRequest
3 голосов
/ 04 июня 2009

У меня есть приложение с большим количеством TextBox элементов управления, которые используют автозаполнение. Каждый из них использует AutoCompleteMode.CustomSource, чтобы получить текст автозаполнения от ассоциированного AutoCompleteStringCollection.

Всякий раз, когда пользователь вводит новое значение в TextBox, он добавляется в связанный AutoCompleteStringCollection, и в конце сеанса все эти коллекции сохраняются в файле в домашнем каталоге пользователя.

Проблема в том, что в этих коллекциях невозможно исправить ошибки. В IE элементы управления вводом с элементами управления автозаполнением позволяют выделять элемент в списке автозаполнения и нажимать Del, чтобы удалить его. Это не работает в элементах управления .NET.

Мне бы очень хотелось, чтобы для этого мне не пришлось реализовывать свой собственный интерфейс. Я застрял? Есть ли способ включить это, что я не вижу?

1 Ответ

2 голосов
/ 04 июня 2009

Из коробки нет, к сожалению, вам нечего делать. Я попробовал P / Invoking базового FindWindowEx / EnumChildWindows, чтобы посмотреть, смогу ли я получить дескриптор для фактического выпадающего меню, но безуспешно (если кому-то удастся это осуществить, дайте мне знать!). Хорошая новость (не очень хорошая, но не ужасная) заключается в том, что автоматическое завершение - это на самом деле не то, что вам нужно полностью реализовать самостоятельно, на самом деле есть функция Win32, называемая SHAutoComplete , которую можно использовать для вызова P / Вы с автозаполнением. Не стоит слишком волноваться, потому что это не так просто, как просто P / Invoking, и с этим можно покончить. Тем не менее, есть отличная статья CodeProject , которая должна вам очень помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...