none
Autocompletar textBox RRS feed

  • Pergunta

  • Olá, pessoal. Gostaria que alguém me dissesse, se for possível, como fazer um textBox sugerir alternativas ao usuário para autocompletar. Só que essas opções sendo recuperadas de uma tabela do meu BD.
    Quero fazer isso com os campos referentes ao endereço de uma pessoa e outros. Ao digitar o começo do nome de uma rua, por exemplo, o aplicativo sugeriria, depois de consultar o banco de dados, ao usuário escolher uma das opções da lista  a partir dos nomes já existentes no BD ou digitar um novo nome de rua (isso já criaria um novo registro para a tabela Endereco).

    Gratíssimo desde já.

    PS.: o que quero é extremamente semelhante ao recurso autocompletar dos browsers. Não queria fazer com um comboBox, fica feio/estranho :D
    terça-feira, 2 de fevereiro de 2010 23:54

Respostas

  • Olá Danilo,

    Basta criar um objeto da classe AutoCompleteStringCollection, que no fundo é uma coleção de objetos do tipo string, preencher essa lista com todas as sugestões possíveis, e associar ao seu controle TextBox.

    Veja um exemplo simples:

    // Cria uma lista com as sugestões
    var sugestoes = new AutoCompleteStringCollection();
    sugestoes.Add("Fernanda");
    sugestoes.Add("Jaime");
    sugestoes.Add("João");
    sugestoes.Add("José");
    sugestoes.Add("Ricardo");
    
    // Define que a origem das sugestões será uma lista customizada
    this.seuTextBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
    
    // Define a forma com que as sugestões serão feitas (nesse exemplo, sem autocompletar)
    this.seuTextBox.AutoCompleteMode = AutoCompleteMode.Suggest;
    
    // E associa a lista de sugestões à TextBox
    this.seuTextBox.AutoCompleteCustomSource = sugestoes;
    
    

    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://www.caioproiete.com
    • Marcado como Resposta Danilo Kleber quinta-feira, 4 de fevereiro de 2010 03:27
    quarta-feira, 3 de fevereiro de 2010 22:18
    Moderador

Todas as Respostas

  • Olá Danilo,

    Basta criar um objeto da classe AutoCompleteStringCollection, que no fundo é uma coleção de objetos do tipo string, preencher essa lista com todas as sugestões possíveis, e associar ao seu controle TextBox.

    Veja um exemplo simples:

    // Cria uma lista com as sugestões
    var sugestoes = new AutoCompleteStringCollection();
    sugestoes.Add("Fernanda");
    sugestoes.Add("Jaime");
    sugestoes.Add("João");
    sugestoes.Add("José");
    sugestoes.Add("Ricardo");
    
    // Define que a origem das sugestões será uma lista customizada
    this.seuTextBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
    
    // Define a forma com que as sugestões serão feitas (nesse exemplo, sem autocompletar)
    this.seuTextBox.AutoCompleteMode = AutoCompleteMode.Suggest;
    
    // E associa a lista de sugestões à TextBox
    this.seuTextBox.AutoCompleteCustomSource = sugestoes;
    
    

    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://www.caioproiete.com
    • Marcado como Resposta Danilo Kleber quinta-feira, 4 de fevereiro de 2010 03:27
    quarta-feira, 3 de fevereiro de 2010 22:18
    Moderador
  • Muito obrigado. Basta add as como sugestões os registros do meu BD.
    quinta-feira, 4 de fevereiro de 2010 03:30