none
Ativar autocomplete do combobox a partir de outra caixa de texto ou maskeditbox RRS feed

  • Pergunta

  • Boa tarde pessoal!

    Recentemente eu postei uma dúvida sobre como usar uma máscara de entrada de dados em uma combobox. A solução que encontrei foi montar um componente novo onde o maskeditbox ficava sobreposto ao combobox, o que me permitia ver uma lista de itens ou digitar os itens já com máscara.

    Bom, mas como nem tudo são flores, eu estou com um novo problema que não sei se terá uma solução. Pelo menos não uma fácil.

    Quando o combobox é usado sozinho, basta vc ativar as opções de autocomplete e autocomplete source para que comece a funcionar. Mas eu estou aqui digitando a informação em um maskeditbox e o autocomplete do combobox se torna inútil.

    Eu gostaria de saber se tem como eu ativar a caixa do autocomplete do combobox ao digitar no maskeditbox. Já tentei simplesmente jogar a informação do maskeditbox direto para a combobox, via propriedade textchanged mas não deu certo.

    Alguém sabe alguma solução?

    Eu ainda tenho alguma coisa para testar, mas se funcionar vai ser pura gambiarra.

    Att.

    Giovani

    quinta-feira, 9 de abril de 2015 19:59

Respostas

  • Boa tarde pessoal.

    Pesquisando bastante na internet, eu encontrei esse material no forum do msdn internacional. O autor da melhor resposta constrói um componente novo que herda propriedades do combobox. Eu fiz isso de forma porca! Veja o tópico aqui. No meu componente, eu simplesmente peguei fita adesiva e colei um no outro! E essa solução encontrada é mais elegante e de certa forma mais correta, pois resolve todos os problemas que eu estou tendo.

    O problema é que eu não tenho habilidade suficiente ainda para reproduzir a resposta dele no meu código. Já tentei e ainda vou tentar mais tempo.

    A resposta do meu problema é o material que encontrei. Pena que ainda não tenho capacidade técnica de replicar.

    Att.

    Giovani

    sexta-feira, 10 de abril de 2015 17:34

Todas as Respostas

  • Olá, Giovani.

    Espero que eu venha a  lhe ajudar

    O Componente "ComboBox" possui 3 Tipos para esta Propriedade. Dependendo da sua necessidade você pode verificar qual a adequada.

    Deixo abaixo imagens com códigos:


    Caso queiras saber mais sobre estas propriedade, você pode ler este artigo do Suporte da Microsoft.

    Microsoft:
    https://msdn.microsoft.com/pt-br/library/system.windows.forms.combobox_properties%28v=vs.110%29.aspx

    Leia também:

    Macoratti:

    http://www.macoratti.net/vbn_cbac.htm

    Retorne-nos, abraço!



    MS INFORMATICA - Um dia eu ainda encontro a Verdadeira Música para a Letra da minha canção - (Márcio Silva Lima)



    quinta-feira, 9 de abril de 2015 22:11
  • Bom dia Márcio!

    Fiz esse vídeo que carreguei no youtube para tentar explicar melhor minha dúvida.

    Eu criei um componente novo de forma bem rudimentar. O que eu fiz foi apenas colocar um componente em cima do outro para dar o efeito visual que eu queria e mais nada. Eu juntei um combobox com um maskeditbox por cima, deixando apenas o botão do combobox para fora do maskeditbox.

    Aí surgiu o problema de exibir aquela caixinha que aparece quando vc utiliza um combobox comum, e configura as opções AutoCompleteMode = Suggest e AutoCompleteSource = ListItems. Como eu estou efetivamente digitando dentro de uma maskeditbox, essas opções se tornam inúteis no combobox!

    Por isso surgiu a necessidade de tentar ativar essa caixinha via código quando a digitação é feita em outro componente. Eu tentei alguns contornos sobre essa situação, mas foi infrutífero e continuo pensando numa solução.

    Att.

    Giovani

    sexta-feira, 10 de abril de 2015 12:53
  • Boa tarde pessoal.

    Pesquisando bastante na internet, eu encontrei esse material no forum do msdn internacional. O autor da melhor resposta constrói um componente novo que herda propriedades do combobox. Eu fiz isso de forma porca! Veja o tópico aqui. No meu componente, eu simplesmente peguei fita adesiva e colei um no outro! E essa solução encontrada é mais elegante e de certa forma mais correta, pois resolve todos os problemas que eu estou tendo.

    O problema é que eu não tenho habilidade suficiente ainda para reproduzir a resposta dele no meu código. Já tentei e ainda vou tentar mais tempo.

    A resposta do meu problema é o material que encontrei. Pena que ainda não tenho capacidade técnica de replicar.

    Att.

    Giovani

    sexta-feira, 10 de abril de 2015 17:34