PDA

Просмотр полной версии : [Статья] Автодополнение текста в TextBox, ComboBox в C#


Sinyss
07.07.2013, 22:18
Большинство разработчиков знакомы с фичей авто дополнения текста в браузерах, поисковых компонентах и тд. Функция автоматического заполнения, когда вы начинаете ввод некоторых символов в элементе управления и соответствующие данные загружаются автоматически.
В VisualStudio некоторые компоненты поддерживают эту функцию, в том числе TextBox и ComboBox.
Используя эти функции, мы можем построить Internet Explorer - подобное авто дополнение в нашем приложении.
Например если выставить автодополнение URL я набрал "po" в TextBox:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Свойства AutoCompleteSource и AutoCompleteMode которые есть у компонентов TextBox и ComboBox обеспечивают функцию авто дополнения. Их можно установить как в режиме разработки так и во время выполнения. Если нажать на AutoCompleteSource вы увидите все доступные опции в выпадающем списке.
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Опции AutoCompleteMode:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Так же их можно установить во время выполнения следующим кодом:
comboBox1.AutoCompleteSource = AutoCompleteSource.AllSystemSources;
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

Перечисление AutoCompleteSource имеет следующие члены:


AllSystemSources Указывает FileSystem и AllUrl в качестве источника. Это значение по умолчанию, если AutoCompleteMode присвоено значение, отличное от значения по умолчанию.
AllUrl Указывает HistoryList и RecentlyUsedList в качестве источника.
CustomSource Определяет строки из встроенного AutoCompleteStringCollection в качестве источника.
FileSystem Указывает файловую систему в качестве источника.
FileSystemDirectories Указывает, что только имена каталогов, а не имена файлов автоматически будут завершены.
HistoryList Включает url-адреса в список журнала.
ListItems Указывает, что элементы ComboBox представляют источник.
None Указывает, что в настоящий момент нет AutoCompleteSource. Это значение по умолчанию для AutoCompleteSource.
RecentlyUsedList Использовать список последних использованных ссылок.

Перечисление AutoCompleteMode содержит:

Append - добавляет остаток из наиболее вероятных кандидатов строки к существующим символам, выделяя добавленную часть.
None - отключает функцию автоматического дополнения для компонента ComboBox или TextBox.
Suggest - Отображает вспомогательный раскрывающийся список, который связан с компонентом. Этот список заполнен предлагаемыми значениями для дополнения.
SuggestAppend - варианты Suggest и Append вместе.


У разработчика есть возможность создать собственный источник данных для дополнения. Это можно сделать как дизайнерскими средствами VisualStudio:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Так и програмно:
AutoCompleteStringCollection data = new AutoCompleteStringCollection();
data.Add("Цой жив");
data.Add("Цой мертв");
data.Add("Ленин жив"); // вариант который не подходит и не отобразится
comboBox1.AutoCompleteCustomSource = data;
Теперь, если нажать "Ц" TextBox выведет:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Спасибо за внимание.