2012-05-19 2 views
1

У меня есть полная функциональность в поле со списком, она работает правильно, но есть небольшая проблема, я сделал список предложений для длины текста более 3 символов, но список появляется после длины 4 символа (когда пользователь вводит пятый символ текста), что означает, когда код выполняется в первый раз список не появляется здесь код в Text_Changed EventАвтоматическое заполнение форм форм ComboBox

Private Sub TxtItem_TextChanged(sender As System.Object, e As System.EventArgs) Handles TxtItem.TextChanged 


    If Trim(TxtItem.Text) <> "" And Trim(TxtItem.Text).Length > 3 Then 
     'Autocomplete 
     Dim Bl As New ItemBL 
     Dim suggestions = Bl.DisplayLikeNameList(Trim(TxtItem.Text)) 
     Dim MySource As New AutoCompleteStringCollection() 
     MySource.AddRange(suggestions.ToArray) 

     With TxtItem 
      .AutoCompleteMode = AutoCompleteMode.Suggest 
      .AutoCompleteSource = AutoCompleteSource.CustomSource 
      .AutoCompleteCustomSource = MySource 
     End With 
     TxtItem.Select(TxtItem.Text.Length, 0) 
     Exit Sub 
    Else 
     TxtItem.AutoCompleteMode = AutoCompleteMode.None 
    End If 

End Sub 

Примечание: Эта проблема вызывает приложение (иногда) в Windows XP, но не влияет на Windows 7

+0

Это заставляет приложение выйти из системы? * Как? * –

+0

иногда, когда пользователь вводит текст более 3 символов, приложение выходит, не показывает сообщение об исключении или что-то еще, просто выходит из –

+1

Не меняйте AutoCompleteMode в обработчике событий, который имеет много побочных эффектов. Просто убедитесь, что источник пуст, если вы не хотите отображать что-либо. –

ответ

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