COMBOBOX COM AUTOCOMPLETEMODE SUGGEST

DOUGLASLS 30/12/2011 15:13:28
#392182
Olá Pessoal,

Sou iniciante em VB.Net e estou desenvolvendo um projeto em Windows Form. Estou com um problema em um ComboBox que é o seguinte:
Meu formulário contem um campo ComboBox com o nome da cidade(cboCidade) e um campo TextBox com o código da cidade (txtCodigo).
No DataSource do ComboBox eu carreguei o nome e o código de todas as cidades cujos dados estão em um DB Mysql.
No evento SelectedIndexChanged do Combobox, atualizo o campo txtCodigo de tal forma que quando navego pelos nomes da cidade do Combobox, o código da cidade respectiva vai aparecendo no campo txtCodigo do formulário. Até ai tudo funciona perfeitamente. O problema é quando eu quero utilizar as sugestões. Os nomes aparecem normalmente no quadro das sugestões mas quando eu navego para selecionar um nome, o campo txtCodigo não é atualizado. Aparentemente, na navegação pelas sugestões o evento SelectedIndexChanged do ComboBox não é disparado.
Verifiquei tambem que quando o nome é selecionado pelas sugestões, a propriedade SelectedValue não está sendo atualizada ao passo que a propriedade Text é atualizada normalmente.
Será que o comportamento da navegação pelas sugestões é diferente do comportamento da navegação pelo ComboBox normal?

Se alguem tiver alguma informação a respeito e puder me ajudar, agradeço muito!

Saudações.
FILMAN 12/01/2012 15:08:57
#393080
Cara não entendi muito bem o que vc esta querendo

verifica se é isso

DOUGLASLS 13/01/2012 11:32:24
#393164
Caro FILMAN, antes de mais nada, obrigado por ter respondido ao meu tópico.

A diferença do que você fez para o meu é que eu quero utilizar sugestões no combobox. Para isso, atualizei as seguintes propriedades do combobox:
AutoCompleteMode = Suggest
AutoCompleteSource = ListItens
Dessa forma quando se digita qualquer coisa no combobox, abre um quadro de sugestôes iniciando pela letra (ou letras) que voce digitou, e se voce navegar pelas sugestões, não mostra o valor no textBox (o indice no caso do seu exemplo). Aparentemente, não dispara o evendo SelectedIndexChangged. (No meu entender, deveria disparar).

Depois de algumas tentativas, verifiquei que colocando a propriedade AutoCompleteSource = FileSystem, funcionou da forma que eu queria. Ai ele mostra o indice no textbox quando navegar pelas sugestões. Só que precisei colocar no evento KeyDown a atualização da propriedade Combobox1.DroppedDown = true, senão não abre o quadro das sugestões.
De qualquer forma, se voce quizer, modifique essas propriedades e verifique os comportamentos diferentes. No meu entender, os dois casos deveriam funcionar da mesma maneira a menos que hája alguma explicação lógica.

Obrigado por enquanto.
FILMAN 13/01/2012 13:09:05
#393172
Caro colega fiz o que vc esta dizendo e no meu aparentemente deu certo verifica se é isso

DOUGLASLS 13/01/2012 14:17:09
#393183
é exatamente essa situação. Verifique que se voce digitar um J no campo que contem o combobox, vai aparecer abaixo o quadro de sugestões com os dois nomes que começam com J (jFernando e Jonathan), e se voce navegar entre eles, à medida que você navega (seta para baixo e para cima), o indice não aparece no textbox da esquerda. Quando você seleciona um deles, ai aparece o indice no textbox.(pelo menos no meu não apareceu). Se voce colocar no datasource mais palavras começando com a mesma letra dá para ver melhor.

Como eu disse anteriormente, atualizando a propriedade AutoCompleteSource para FileSystem e incluido um evento KeyDown no combobox e nele atualizar a propriedade DroppedDown para true (ComboboxDroppedDown = true), funciona direitinho. Resolvi meu problema utilizando essa opção mas fiquei intrigado porque funciona de uma forma e não funciona na outra.

Saudações!
Tópico encerrado , respostas não são mais permitidas