Автозавершение при вводе данных в textbox
В этой небольшой статье хочу показать на простом примере, как добавить возможность автозавершения при вводе данных в элемент управления textbox.
Создадим новый проект типа Windows Forms Application на языке c#.
Добавим на форму два элемента управления: Button (кнопка) и TextBox (текстовое поле).
Для реализации автоматического завершения выполним следующие действия:
1. Установим свойство MultiLine, элемента управления textBox, в значение false.
2. Создадим новый метод CreateAutoCompleteList.
3. Создадим список слов для автозавершения.
В данном примере для хранения слов будет использоваться xml файл, данные из которого будут считываться, при запуске приложения, в специальную встроенную коллекцию типа AutoCompleteStringCollection.
Структура xml файла приведена на картинке.
4. С помощью свойства AutoCompleteMode выберем режим автоподстановки:
Append — первое найденное (совпавшее) значение в коллекции AutoCompleteStringCollection.
Suggest — используется при возможном нахождении нескольких значений с одинаковым первым символом, например: Вася и Ваня. В таком случае пользователю будет выведен список возможных вариантов для самостоятельного выбора нужного значения.
SuggestAppend — позволяет использовать оба выше описанных режима.
Поиск совпадений в коллекции производится по первому символу слова введенного в текстовое поле.
5. С помощью свойств AutoCompleteSource и AutoCompleteCustomSource укажем источник, в котором нужно искать слова для автоматического завершения.
При работе со встроенным источником типа AutoCompleteStringCollection выбираем значение CustomSource перечисления AutoCompleteSource.
В результате получаем:
Для работы с классом XDocument необходимо добавить ссылку на пространство имён System.Xml.Linq.
Созданный метод будет выполняться во время загрузки формы, поэтому для начала подписываемся на событие Form_Load, а затем в обработчике данного события вызываем метод CreateAutoCompleteList:
Читайте также:
В этой небольшой статье хочу показать на простом примере, как добавить возможность автозавершения при вводе данных в элемент управления textbox.
Создадим новый проект типа Windows Forms Application на языке c#.
Добавим на форму два элемента управления: Button (кнопка) и TextBox (текстовое поле).
Для реализации автоматического завершения выполним следующие действия:
1. Установим свойство MultiLine, элемента управления textBox, в значение false.
2. Создадим новый метод CreateAutoCompleteList.
C#:
private void CreateAutoCompleteList()
{
}
В данном примере для хранения слов будет использоваться xml файл, данные из которого будут считываться, при запуске приложения, в специальную встроенную коллекцию типа AutoCompleteStringCollection.
Структура xml файла приведена на картинке.
4. С помощью свойства AutoCompleteMode выберем режим автоподстановки:
Append — первое найденное (совпавшее) значение в коллекции AutoCompleteStringCollection.
Suggest — используется при возможном нахождении нескольких значений с одинаковым первым символом, например: Вася и Ваня. В таком случае пользователю будет выведен список возможных вариантов для самостоятельного выбора нужного значения.
SuggestAppend — позволяет использовать оба выше описанных режима.
Поиск совпадений в коллекции производится по первому символу слова введенного в текстовое поле.
5. С помощью свойств AutoCompleteSource и AutoCompleteCustomSource укажем источник, в котором нужно искать слова для автоматического завершения.
При работе со встроенным источником типа AutoCompleteStringCollection выбираем значение CustomSource перечисления AutoCompleteSource.
C#:
AutoCompleteSource.CustomSource;
C#:
private void CreateAutoCompleteList()
{
try
{
//загрузка xml файла
XDocument xDoc = XDocument.Load(@"../../names.xml");
//получаем все элементы name
var elmsName = xDoc.Descendants("name");
//коллекция для хранения строк для автозавершения
AutoCompleteStringCollection list;
list = new AutoCompleteStringCollection();
//заполняем коллекцию
foreach (var elmName in elmsName)
{
list.Add(elmName.Value);
}
//выбираем режим автозавершения
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
//указываем источник данных для автоподстановки
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox1.AutoCompleteCustomSource = list;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
C#:
using System.Xml.Linq;
C#:
private void Form1_Load(object sender, EventArgs e)
{
CreateAutoCompleteList();
}
Последнее редактирование: