2010-11-11 3 views
4

Итак, я немного читал о автозаполнении текстовых полей в VB.NET, но я не могу понять, где они хранятся? Является ли это полностью встроенной функцией или мне нужно написать код для ее работы? Я нашел свойства текстовых полей AutoCompleteMode и AutoCompleteSource. Но я хочу добавить все, что я написал в текстовое поле, к источнику автозаполнения. Я подключаю источник к My.Settings или что-то в этом роде? Разве я не должен был бы использовать массив? Любая помощь была бы оценена :)Vb.net + Автозаполнение в текстовых окнах

+0

Наполнение AutoCompleteCustom Источник текстового поля, добавление и удаление записей: [эту статью] (http://www.codeproject.com/Articles/243368/AutoComplete-Textbox) – AvS

ответ

5

Вам нужно будет добавить новые записи в свой автоматически заполненный источник данных вручную ... что имеет смысл, когда вы думаете об этом: как Windows Forms должна знать, когда новая запись следует добавить в список предложений и когда введенный текст является лишь чем-то временным?

Вы можете добавить новые значения, например. когда происходит проверка поля ввода или когда пользователь нажимает кнопку «ОК»/«Применить» или все, что лучше всего подходит вам. Но вам придется делать это самостоятельно.

Свойства, которые вы уже обнаружили, являются правильными.

Dim suggestions As New List(Of String) 
suggestions.Add("Abba") 
suggestions.Add("Nirvana") 
suggestions.Add("Rolling Stones") 
... 
textBox.AutoCompleteSource = suggestions 

Вы можете связать AutoCompleteSource почти ничего; это очень похоже на привязку данных. Следует иметь в виду, что если вы добавляете новые записи в автозаполненный источник данных, элемент управления пользовательского интерфейса может не сразу заметить, если ваш источник данных не реализует интерфейс INotifyCollectionChanged.

+0

Ok, так где хранится эта информация? Могу ли я сохранить его в My.Settings? –

+0

@ Kenny. Да. Вы можете хранить его в любом месте, которое вам удобно. –

+0

Я не могу понять синтаксис. Dim предложения, поскольку новый список (Of String) = {«Abba», «Nirvana», «Rolling Stones»} не летает хорошо. Я получаю «Конец ожидаемого утверждения» –

1

сначала создайте список для использования в качестве настраиваемого источника.

Dim MySource As New AutoCompleteStringCollection() 

, а затем установить свойство текстового поля

With MyTextbox 
    .AutoCompleteCustomSource = MySource 
    .AutoCompleteMode = AutoCompleteMode.SuggestAppend 
    .AutoCompleteSource = AutoCompleteSource.CustomSource 
End With 

поместить этот код в EventListener используется для проверки в поле ввода, например, btnOK.Click

Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click 
    MySource.Add(txtinput.text) 
End Sub 
Смежные вопросы