VB.NET - Usando o recurso AutoCompletar


Neste artigo eu mostro como você pode usar o recurso de autopreenchimento , aquele recurso que conforme você for digitando os caracteres de um critério de busca em uma caixa de texto ou combobox os valores são exibidos parcialmente.

Você já deve saber que uma das formas de você implementar este recurso é usar as propriedades AutoCompleteMode e AutoCompleteSource.

Segue abaixo um resumo dessas propriedades para refrescar a sua memória:

Obtém ou define um valor especificando a fonte de strings completas usadas para o auto-preenchimento automático.

Use as propriedades AutoComplteCustomeSource, AutoCompleteMode e AutoCompleteSource para criar um ComboBox que completa automaticamente uma cadeia de caracteres de entrada comparando o prefixo que esta sendo inserido com os prefixos de todas as cadeias de caracteres em uma origem.

De forma resumida podemos definir cada uma destas propriedades:

- AutoCompleteMode: define o comportamento do Auto Complete; (Opções: None, Append, Suggest e AppendSuggest)
- AutoCompleteSource: define qual a fonte de dados do Auto Complete;
- AutoCompleteCustomSource: É usada somente quando o AutoCompleteSource é definido como CustomSource.

As opções possíveis para AutoCompleteCustomSource são:

  • FileSystem, HistoryList, RecentUsedList, AllUrl, AllSystemSources, CustomeSource e None.

Na verdade o recurso pode ser aplicado também a uma caixa de texto (TextBox). Vejamos um exemplo:

Vamos criar um novo projeto Visual Basic usando o VB 2008 Express Edition com o nome autoCompletar;

A seguir inclua no formulário um controle TextBox; selecione o controle e exiba a janela de propriedades localizando as propriedades AutoCompleteCustomSource, AutoCompleteMode e AutoCompleteSource;

Vamos começar com a propriedade AutoCompleteMode que define o comportamento da caixa de texto, podemos ter os valores:

AutoCompleteCustomSource - permite definirmos uma lista de informações que serão consultadas quando for preciso completar automaticamente um controle.

A seguir temos um exemplo bem simples de utilização do recurso:

Abra o Visual Basic 2008 Express Edition e crie um novo projeto do tipo Windows Forms Application com o nome autoCompletar;

No formulário padrão inclua uma caixa de texto e na janela de propriedades selecione a sua propriedade AutoCompleteSource e selecione a opção CustomSource pois iremos definir uma fonte digitando alguns dados;

Selecione a propriedade AutoCompleteMode e defina o modo Append;

Selecione a seguir a propriedade AutoCompleteCustomSource e clique no botão para abrir a janela do Editor;

Vamos incluir alguns nomes que servirão como fonte de dados personalizada. Na janela String Collection Editor digite alguns nomes conforme a figura abaixo:

Executando o projeto ao digitar os caracteres Mac na caixa de texto os caracteres oratti são anexados como sugestão e destacados.

Se alterarmos a propriedade AutoCompleteMode para Suggest e executarmos o projeto ao digitar o caractere M na caixa de texto será aberta a lista de sugestão conforme abaixo:

Definindo a propriedade AutoCompleteMode no modo Append teremos:

Você pode fazer as definições acima via código, no exemplo abaixo estamos efetuando estas definições no evento Load do formulário:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

      Dim nomes() As String = {"Macoratti", "Marcos", "Marcio", "Ana", "Paulo", "Beatriz"}

        With TextBox1
            .AutoCompleteCustomSource.Add(nomes.ToString)
            .AutoCompleteMode = AutoCompleteMode.SuggestAppend
            .AutoCompleteSource = AutoCompleteSource.CustomSource
        End With

End Sub

As mesmas configurações e propriedades valem para o controle ComboBox. Vejamos um exemplo clássico que simula o comportamento de um navegador Web usando o recurso AutoCompletar.

Inclua no projeto autoCompletar um novo formulário Windows form2.vb via menu Project ->Add new Windows Forms;

Inclua neste formulário os seguintes controles:

Defina o leiaute do formulário conforme a figura abaixo:

Agora selecione o controle ComboBox e defina as suas propriedades AutoCompleteMode como SuggestAppend e AutoCompleteSource como AllUrl;

Clique em MyProject e defina o formulário de inicialização como Form2 e execute o projeto.

Você acabou de criar um mini navegador com o recurso autocompletar idêntico ao comportamento padrão do IE.

Pegue o projeto completo aqui: autocompletar.zip

Eu sei é apenas VB .NET mas eu gosto...


José Carlos Macoratti