Um dos controles mais úteis dentro das aplicações Windows Forms no framework .NET é o controle “ComboBox”. Entretanto, às vezes ele parece não funcionar muito bem.
Geralmente, quando você usa este controle e digita o texto para ser pesquisado dentro dos ítens, apenas a primeira letra dos itens é que é buscada.
Vou demonstrar como controlar isto para o controle buscar o nome conforme for digitado.
Este exemplo eu fiz usando o Visual Studio 2010 mas, funciona também com outras versões.
Crie uma aplicação do tipo “Windows Forms” usando o menu “File >> New >> Project”. Na janela configure para “Windows Forms Application”.
Arraste um componente “Label” e outro “ComboBox”. Configure-os conforme a tabela abaixo demonstra:
Componente | Propriedade | Valor | Comentários |
Label | Text | Nomes | |
ComboBox | DropDownStyle | DropDownList | Use este modo para restringir apenas aos itens que estão listados na propriedade Items. |
Items | Ana |
Execute o programa pressionando F5. Ao tentar localizar um dos nomes como por exemplo “Beatriz” note que, ao pressionar a tecla “B” o nome é exibido corretamente, mas, ao pressionar “A” o controle vai para o nome “Ana”.
Para resolver isto, configure as propriedades como abaixo:
Componente | Propriedade | Valor | Comentários |
ComboBox | DropDownStyle | DropDownList | Use este modo para restringir apenas aos itens que estão listados na propriedade Items. |
Items | Ana | ||
AutoCompleteMode | Suggest | Esta opção indica que deve sugerir o texto digitado. | |
AutoCompleteSource | ListItems | Indica a origem dos itens a serem sugeridos. |
Execute o programa agora e verifique que a busca funciona corretamente.