Usuário com melhor resposta
DataGridViewComboBoxColumn adicionar uma lista com duas opções

Pergunta
-
Gostaria de adicionar uma lista em um DataGridView.
Para isto criei uma das colunas do DataGridView como ComboBoxColumn e tentei inserir conforme abaixo.
DataGridViewComboBoxColumn lista = new DataGridViewComboBoxColumn();
lista.HeaderText = "Unid.";
lista.Items.Add("UN");
lista.Items.Add("CX");
lista.Name = "lista";
meuDataGridView.Rows.Add
(new object[]
{
cod, nome, lista, quantidade, total
}
);Mas aparece o seguinte erro.
Respostas
-
o erro está ocorrendo pois voce está tentando adicionar um array para dentro da lista.
meuDataGridView.Rows.Add(0, cod); meuDataGridView.Rows.Add(1, nome); meuDataGridView.Rows.Add(2, lista);
Por favor, lembre-se de “Marcar como Resposta” as respostas 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 Erick WendelMVP sábado, 16 de janeiro de 2016 02:06
- Marcado como Resposta Marcos SJ segunda-feira, 18 de janeiro de 2016 12:52
-
Boa tarde.
Acredito que tu estejas confundindo uma DataGridViewComboBoxColumn com uma DataGridViewComboBoxCell.
A coluna é a coluna "física" e a célula é o resultado da interseção de uma linha com uma coluna.
Levando isso em conta, uma forma de fazer o que tu desejas é a seguinte:
List<object> lstSource = new List<object>() { "Item 1", "Item 2" }; DataGridViewComboBoxColumn coluna = new DataGridViewComboBoxColumn(); coluna.HeaderText = "Unid."; coluna.Name = "lista"; coluna.DataSource = lstSource; dataGridView1.Columns.Add(coluna); dataGridView1.Rows.Add (new object[] { "1", "Teste" } );
Works like a charm.
Att., Rafael Simor
- Marcado como Resposta Marcos SJ segunda-feira, 18 de janeiro de 2016 12:52
-
Rafael... sua solução passou bem perto do que eu desejaria, no caso eu troquei o .Add(Coluna) pelo .Insert(2, Coluna), mas como não é apenas uma linha que será inserida no grid, a cada linha inserida é adicionada ou inserida uma coluna nova.
Bem... tentei várias variações de solução com base na sua ideia, mas não consegui o êxito.
Acabei por decidir trabalhar com o grid de forma diferente, obrigado pela sua ajuda.
- Marcado como Resposta Roger Nascimento segunda-feira, 18 de janeiro de 2016 14:21
Todas as Respostas
-
o erro está ocorrendo pois voce está tentando adicionar um array para dentro da lista.
meuDataGridView.Rows.Add(0, cod); meuDataGridView.Rows.Add(1, nome); meuDataGridView.Rows.Add(2, lista);
Por favor, lembre-se de “Marcar como Resposta” as respostas 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 Erick WendelMVP sábado, 16 de janeiro de 2016 02:06
- Marcado como Resposta Marcos SJ segunda-feira, 18 de janeiro de 2016 12:52
-
Boa tarde.
Acredito que tu estejas confundindo uma DataGridViewComboBoxColumn com uma DataGridViewComboBoxCell.
A coluna é a coluna "física" e a célula é o resultado da interseção de uma linha com uma coluna.
Levando isso em conta, uma forma de fazer o que tu desejas é a seguinte:
List<object> lstSource = new List<object>() { "Item 1", "Item 2" }; DataGridViewComboBoxColumn coluna = new DataGridViewComboBoxColumn(); coluna.HeaderText = "Unid."; coluna.Name = "lista"; coluna.DataSource = lstSource; dataGridView1.Columns.Add(coluna); dataGridView1.Rows.Add (new object[] { "1", "Teste" } );
Works like a charm.
Att., Rafael Simor
- Marcado como Resposta Marcos SJ segunda-feira, 18 de janeiro de 2016 12:52
-
-
-
-
Rafael... sua solução passou bem perto do que eu desejaria, no caso eu troquei o .Add(Coluna) pelo .Insert(2, Coluna), mas como não é apenas uma linha que será inserida no grid, a cada linha inserida é adicionada ou inserida uma coluna nova.
Bem... tentei várias variações de solução com base na sua ideia, mas não consegui o êxito.
Acabei por decidir trabalhar com o grid de forma diferente, obrigado pela sua ajuda.
- Marcado como Resposta Roger Nascimento segunda-feira, 18 de janeiro de 2016 14:21