2015-04-10 4 views
1

Я пытаюсь добавить auto complete в текстовое поле Windows Forms VB.NET. У меня есть текстовое поле размером 268, 102, расположенное на форме. Я попробовал несколько способов заставить автозаполнение работать: Добавление строк в AutoCompleteCustomSource через панель «Свойства» Добавление списка строк в источник и назначение этого кода несколькими способами. Ни один из них не делает никакого автозаполнения. .TextBox AutoComplete не работает в vb.net

Самая последняя попытка кода довольно много пример, показанный на MSDN:

Dim I2cMonths As New AutoCompleteStringCollection() 

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    '... 
    I2cMonths.AddRange(New String() {"January", "Febuary", "March"}) 
    With I2C_TextBox 
     .AutoCompleteCustomSource = I2cMonths 
     .AutoCompleteMode = AutoCompleteMode.SuggestAppend 
     .AutoCompleteSource = AutoCompleteSource.CustomSource 
    End With 
    '... 
End Sub 

Что я делаю не так ??

+0

пишут, что в тексте событие изменения и проверить –

+0

@akhilkumar Im не уверен, что вы имеете в виду, вы можете объяснить немного? – Toby

+0

Я имею в виду установить свойство в текстовом поле text_changed event.not в formload. –

ответ

1

Учитывая ваше описание случая, я подозреваю, что ваш TextBox является MULTILINE. Стандартный автозаполнение не работает в многострочных текстовых окнах.

Если вы хотите использовать автозаполнение в многострочном текстовом поле, вам придется реализовать его самостоятельно, используя соответствующие события TextBox и обрабатывая список «на лету» (просмотр) - «всплывающее» или какой-либо другой эквивалент ,

1

Попробуйте изменить порядок вокруг ...

 I2C_TextBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend 
    12C_Textbox.AutoCompleteSource = AutoCompleteSource.CustomSource 
     I2cMonths.AddRange(New String() {"January", "Febuary", "March"})   
    12C_TextBox.AutoCompleteCustomSource = 12cMonths 
+0

Не вижу никакой разницы с этим, я боюсь: \ – Toby

0

Попробуйте этот фрагмент

I2cMonths.AddRange(New String() {"January", "Febuary", "March"})  
    With I2C_TextBox 
     .AutoCompleteMode = AutoCompleteMode.SuggestAppend 
     .AutoCompleteSource = AutoCompleteSource.CustomSource 
     .AutoCompleteCustomSource = I2cMonths 
    End With 
+0

Это именно тот метод, с которого начинался, как упоминалось в вопросе. для ответа на вопрос уже есть выбранный ответ, который сообщает нам, что этот точный подход * не будет работать * с многострочным TextBox. Вы пытаетесь добавить новую информацию о методе, позволяющем автозаполнению работать с многострочным TextBox? – Toby

Смежные вопросы