Usuário com melhor resposta
Sistema de AutoComplete

Pergunta
-
Eu estou devenvolvendo meu primeiro programa, e achei interesante colocar AutoComplete no DataGridView, esse sistema fica completando em todas as colunas por exemplo se eu digita 'b' na coluna de nome vai aparece a lista para comple, mais quero que ele complete as palavras somente na coluna "cidade" como eu faço?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
createRows();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void createRows()
{
//ADD COLUNAS
dataGridView1.ColumnCount = 3;
dataGridView1.Columns[0].Name = "id";
dataGridView1.Columns[1].Name = "Nome";
dataGridView1.Columns[2].Name = "Cidade";
}
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
//parte 3
string header = dataGridView1.Columns[2].HeaderText;
if(header.Equals("Cidade"))
{
TextBox auto = e.Control as TextBox;
if(auto !=null)
{
//set mode, source
auto.AutoCompleteMode = AutoCompleteMode.Suggest;
auto.AutoCompleteSource = AutoCompleteSource.CustomSource;
AutoCompleteStringCollection data = new AutoCompleteStringCollection();
fillItems(data);
auto.AutoCompleteCustomSource = data;
}
}
}
private void fillItems(AutoCompleteStringCollection data)
{
data.AddRange(new String[] { "Montes Claros", "Belo Horizonte", "Janauba", "Juramento", "Bocaiuva" });
}
}
}
Respostas
-
Bom dia BrisaLook,
Obrigado por sua participação no Fórum MSDN.
Por gentileza, tente adaptar o exemplo abaixo para o que você precisa:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (dataGridView1.CurrentCell.ColumnIndex == 1) { TextBox auto = e.Control as TextBox; if (prodCode != null) { auto.AutoCompleteMode = AutoCompleteMode.SuggestAppend; auto.AutoCompleteCustomSource = ClientListDropDown(); auto.AutoCompleteSource = AutoCompleteSource.CustomSource; } } else { TextBox auto = e.Control as TextBox; if (auto != null) { auto.AutoCompleteMode = AutoCompleteMode.None; } } }
Atenciosamente,Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Sugerido como Resposta Robson William SilvaModerator sexta-feira, 15 de julho de 2016 13:48
- Marcado como Resposta Robson William SilvaModerator terça-feira, 19 de julho de 2016 17:23
Todas as Respostas
-
Bom dia BrisaLook,
Obrigado por sua participação no Fórum MSDN.
Por gentileza, tente adaptar o exemplo abaixo para o que você precisa:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (dataGridView1.CurrentCell.ColumnIndex == 1) { TextBox auto = e.Control as TextBox; if (prodCode != null) { auto.AutoCompleteMode = AutoCompleteMode.SuggestAppend; auto.AutoCompleteCustomSource = ClientListDropDown(); auto.AutoCompleteSource = AutoCompleteSource.CustomSource; } } else { TextBox auto = e.Control as TextBox; if (auto != null) { auto.AutoCompleteMode = AutoCompleteMode.None; } } }
Atenciosamente,Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Sugerido como Resposta Robson William SilvaModerator sexta-feira, 15 de julho de 2016 13:48
- Marcado como Resposta Robson William SilvaModerator terça-feira, 19 de julho de 2016 17:23
-
-
Boa tarde BrisaLook,
É necessário adaptar o código exemplo à sua realidade.
Por gentileza, troque o 'prodCode' pelo 'auto'.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Sugerido como Resposta Robson William SilvaModerator sexta-feira, 15 de julho de 2016 19:00
-
Boa tarde,
Devido a falta de resposta do usuário
essa thread está sendo fechada.
Se o problema ainda estiver ocorrendo,
favor abrir uma nova thread.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.