none
Digitação em um combobox vb 2010 RRS feed

  • Pergunta

  • Olá galera, acabei de fazer um projeto em Visual Basic 2010 Express onde tenho um formulário de chamados de help desk que possui um combobox que busca o nome do cliente do banco de dados Sql Server 2005. Assim, configurei o Datasource certinho e está aparecendo todos os clientes. Deixei aberto para o usuário digitar o valor a buscar na lista de itens do combobox, porém a busca aceita valores que não estão na lista, ou seja, ex:

     

    Clientes

     

    Alan

    Adriano

    Pedro

     

    Quando eu digito "A" no combobox ele filtra e mostra na lista apenas "Alan" e "Adriano", porém se eu digitar "AP" ele não lista nenhum item (já que não existe na lista), mas aceita o "AP". Gostaria se possível que ao digitar um valor que não existe ele não aceitasse, ex:

     

    Digitei "A" listou "Alan" e "Adriano"

    Digitei "AL" listou "Alan"

    Tentei digitar "AB" ele não aceitar digitar o "B" e ficar o "A" listando "Alan" e "Adriano".

     

    Tentei explicar da forma mais clara possível... ^^

     

    Desde já agradeço a atenção de todos!!

    quarta-feira, 31 de dezembro de 2014 10:59

Respostas

  • Basta substituir de onde no exemplo pega em uma lista fixa, para consultar no seu banco. Dessa forma ele irá carregar o que está no banco e popular o AutoComplete.

    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    • Marcado como Resposta Marcos SJ quarta-feira, 24 de fevereiro de 2016 19:29
    segunda-feira, 14 de setembro de 2015 03:55

Todas as Respostas

  • Para fazer isso você pode usar o método KeyDown do combobox e verificar se o texto digitado está na sua lista ou na sua consulta, se não estiver você cancela a tecla pressionada.

      Private Sub ComboBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles ComboBox1.KeyDown
        Dim texto As String = ComboBox1.Text + e.KeyCode.ToString()
        If Not String.IsNullOrEmpty(lista.Contains(texto)) Then
          e.SuppressKeyPress = True
        End If
      End Sub


    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    sábado, 3 de janeiro de 2015 02:43
  • Olá Bruno, primeiramente muito obrigado pela atenção. Acho que no exemplo que você passou está feito para um combobox populado por lista manual, e o meu está sendo populado a partir do Data Bound Items originado de uma tabela chamada Categorias. Como eu faria para verificar se o texto está na tabela Categorias do banco de dados Sql Server. Obrigado!
    quinta-feira, 8 de janeiro de 2015 11:48
  • Basta substituir de onde no exemplo pega em uma lista fixa, para consultar no seu banco. Dessa forma ele irá carregar o que está no banco e popular o AutoComplete.

    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    • Marcado como Resposta Marcos SJ quarta-feira, 24 de fevereiro de 2016 19:29
    segunda-feira, 14 de setembro de 2015 03:55