2016-11-13 4 views
0

У меня есть combobox, заполненный данным, код ищет текстовую строку, расположенную в любой позиции поля во время написания пользователем, до сих пор не проблема.Проблема с автозаполнением combobox в vb.net

Таким образом, проблема заключается в следующем: когда я пишу третий символ, combobox автоматически заполняет первый результат, и нет никакого способа ввести что-либо еще.

Я уже пробовал использовать все AutocompleteMode & AutocompleteSourse Настройки и комбинации свойств. Вот почему я прошу о помощи. код ниже:

Private Sub ComboListadoRemitente_KeyUp(sender As Object, e As KeyEventArgs) Handles ComboListadoRemitente.KeyUp 

    Dim strText As String 

    strText = ComboListadoRemitente.Text 

    If Len(strText) > 2 Then 

     ComboListadoRemitente.DataSource = dtListado.Select("listado LIKE '%" & strText & "%'") 

     ComboListadoRemitente.DroppedDown = True 

     Cursor.Current = Cursors.Default 

    End If 
End Sub 

Благодаря

ответ

0

Наконец я получил то, что работает хорошо, это не окончательный вариант, безусловно, могут быть дополнительно улучшены, вот код:

Public Sub ComboListadoRemitente_KeyUp(sender As Object, e As KeyEventArgs) Handles ComboListadoRemitente.KeyUp 

     Dim strText As String 

     strText = ComboListadoRemitente.Text 


     If ComboListadoRemitente.Text = "" Then 

      ComboListadoRemitente.DataSource = Me.dtListado 

      ComboListadoRemitente.ValueMember = "Id" 

      ComboListadoRemitente.DisplayMember = "listado" 

      ComboListadoRemitente.SelectedIndex = -1 

      ComboListadoRemitente.DroppedDown = False 

     End If 



     If Len(strText) > 2 Then 

      ComboListadoRemitente.DataSource = dtListado.Select("listado LIKE '%" & strText & "%'") 

      ComboListadoRemitente.ValueMember = "Id" 

      ComboListadoRemitente.DisplayMember = "listado" 

      If ComboListadoRemitente.Items.Count <> 0 Then 

       ComboListadoRemitente.DroppedDown = True 

       ComboListadoRemitente.SelectedIndex = -1 

       ComboListadoRemitente.Text = "" 

       ComboListadoRemitente.SelectedText = strText 

       strText = "" 

       Cursor.Current = Cursors.Default 


      Else 

       ComboListadoRemitente.DataSource = Me.dtListado 

       ComboListadoRemitente.ValueMember = "Id" 

       ComboListadoRemitente.DisplayMember = "listado" 

       ComboListadoRemitente.SelectedIndex = -1 

       ComboListadoRemitente.Text = "" 

       ComboListadoRemitente.SelectedText = strText 

       strText = "" 

       ComboListadoRemitente.DroppedDown = False 



      End If 

     End If 

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