Автозаполнение адреса электронной почты и / или имен в C # - PullRequest
2 голосов
/ 08 октября 2009

Я ищу решение, подобное обсужденному здесь, но для C # WinForms. Ссылка здесь

Если перефразировать, возможно ли выполнять автозаполнение текстовых полей в C #, используя один источник данных с несколькими строками? Результат должен быть похож на поле TO Gmail при создании электронных писем или поле TO: в MS Outlook.

Например, набор данных может быть:
"Джон Уильямс" (john.williams@gmail.com)
"Боб Джонсон" (john.jacobs@gmail.com)
"Вилли Джонстон" (willy.williams@gmail.com)
"Вилли Уильямс" (johnjohn@gmail.com)

... и я должен быть в состоянии напечатать "Джон", и все четыре будут предложены. Если бы я набрал «johns», то были бы предложены вторая и третья записи.

Это более сложный вариант, чем автозаполнение, предоставляемое .NET по умолчанию.

Спасибо, * 1013 Грег *

Ответы [ 4 ]

3 голосов
/ 06 ноября 2009

В итоге я написал свой собственный пользовательский класс UserControl, чтобы позаботиться об этом. Похоже, там не было ничего, что отвечало бы моим потребностям.

Я указал источник и DLL здесь, под BSD: http://code.google.com/p/email-autocomplete

По сути, он имитирует функциональность поля «Кому:» в Gmail, но, конечно, в .NET.

3 голосов
/ 08 октября 2009

Элементы управления WinForms 2.0 уже предоставляют эту функцию в свойстве AutoCompleteSource. Вы можете установить это как источник данных или создать свой собственный список строк с AutoCompleteStringCollection.

1 голос
/ 08 октября 2009
0 голосов
/ 08 октября 2009

В элементе управления (например, TextBox) откройте раздел «Поведение» и установите для AutoCompleteType нужное значение. Вы можете сделать то же самое программно. Для вашего элемента управления (например, TextBox TextBox1) вызовите тип AutoCompleteType и инициализируйте значение (например, TextBox1.AutoCompleteType = AutoCompleteType.Email; )

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