Usuário com melhor resposta
Percorrer linha por linha no DataGridview

Pergunta
-
Boa tarde Galera,
tenho um datagridview com alguns códigos de produto nele.
Precisava de criar um botão que percorresse todas as linhas do datagridview até o fim automaticamente e conforme fosse passando em cada linha trouxesse o código do produto em um textbox .
Tentei usando o foreach, mas ele só está percorrendo com messagebox para o textbox não estou conseguindo.
private void button1_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow linha in dgvDados.Rows)
{
MessageBox.Show(linha.Cells[0].Value.ToString());
}
}Alguém pode me ajudar, por favor?
Grato!
Respostas
-
List<DataGridViewRow> rowCollection = new List<DataGridViewRow>(); foreach(DataGridViewCell cell in dataGridView.SelectedCells) { rowCollection.Add(dataGridView.Rows[cell.RowIndex]; }
Assim voce recupera cada dado da lista. Depois é só passar os valores para seus textbox
txtTexto1.Txt = rowCollection .ElementAt(0);//para o item 0 da 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 quarta-feira, 13 de janeiro de 2016 16:53
- Sugerido como Resposta Erick WendelMVP quinta-feira, 14 de janeiro de 2016 02:14
- Não Sugerido como Resposta Marcos SJ quinta-feira, 14 de janeiro de 2016 13:08
- Sugerido como Resposta Marcos SJ quinta-feira, 14 de janeiro de 2016 13:08
- Marcado como Resposta Marcos SJ sexta-feira, 15 de janeiro de 2016 17:00
Todas as Respostas
-
Boa tarde Galera,
tenho um datagridview com alguns códigos de produto nele.
Precisava de criar um botão que percorresse todas as linhas do datagridview até o fim automaticamente e conforme fosse passando em cada linha trouxesse o código do produto em um textbox .
Tentei usando o foreach, mas ele não percorre linha a linha como preciso.
Alguém pode me ajudar, por favor?
Grato!
- Mesclado Marcos SJ quarta-feira, 13 de janeiro de 2016 18:15 Thread repetida
-
List<DataGridViewRow> rowCollection = new List<DataGridViewRow>(); foreach(DataGridViewCell cell in dataGridView.SelectedCells) { rowCollection.Add(dataGridView.Rows[cell.RowIndex]; }
Assim voce recupera cada dado da lista. Depois é só passar os valores para seus textbox
txtTexto1.Txt = rowCollection .ElementAt(0);//para o item 0 da 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 quarta-feira, 13 de janeiro de 2016 16:53
- Sugerido como Resposta Erick WendelMVP quinta-feira, 14 de janeiro de 2016 02:14
- Não Sugerido como Resposta Marcos SJ quinta-feira, 14 de janeiro de 2016 13:08
- Sugerido como Resposta Marcos SJ quinta-feira, 14 de janeiro de 2016 13:08
- Marcado como Resposta Marcos SJ sexta-feira, 15 de janeiro de 2016 17:00
-
-
Olá, tudo bem?
Continue com o foreach, ele é excelente para o que você esta querendo fazer.
Segue o código:
private void btnPegarCodigo_Click(object sender, EventArgs e) { foreach (DataGridViewRow row in DataGridViewProdutos.Rows) { txtCodigos.Text += row.Cells[0].Value + ";"; } }
Espero ter ajudado, se deu tudo certo marca como respondido por favor, porque me ajuda bastante.
Um abraços e sucesso e seus projetos.
- Sugerido como Resposta Dener Portela Faria quarta-feira, 13 de janeiro de 2016 17:26
-
private void button1_Click(object sender, EventArgs e)
{
List<DataGridViewRow> rowCollection = new List<DataGridViewRow>();
foreach(DataGridViewCell cell in dgvDados.SelectedCells)
{
rowCollection.Add(dgvDados.Rows[cell.RowIndex]);
textBox1.Text = rowCollection.ElementAt[0];
}
}Fiz do jeito que vc está me passando está dando erro nessa parte que está em negrito.
Grato!
-
Boa tarde Dener,
fiz exatamente assim:
private void button1_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvDados.Rows)
{
textBox1.Text += row.Cells[0].Value + ";";
}
}Não dá erros, mas a aplicação trava e não aparece dado nenhum no textbox.
Grato!
-
Era pra dar certo, vou te mandar o projeto, baixa e da uma olhada fiz no VS 2015:
Se mesmo visualizando o projeto não der certo, começa um projeto do zero e testa novamente, é para funcionar perfeitamente:
https://onedrive.live.com/redir?resid=9FBE0DE35A8A794D!181815&authkey=!AJ9N5yFOdjDF80M&ithint=file%2czip
Abraços.
- Editado Dener Portela Faria quarta-feira, 13 de janeiro de 2016 17:37
-
A entendi, mas para mim assim não da certo, precisa de ser um código por vez.
001
002
003
Pois, o valor do textbox, vou jogar dentro de um parâmetro de uma procedure no banco de dados.
Precisava de algo como está abaixo um por vez, mas no textbox e não messagebox como está aí no exemplo.
Grato!
- Editado fsm1993 quarta-feira, 13 de janeiro de 2016 17:49
-
Voce esta a fazer mal...
voce quer mostrar todos os codigos do producto no textbox?
da maneira que estas fazer, ele simplesmente vai mostrar o ultimo codigo do producto no textbox...
quantos textbox voce tem?
A flower cannot blossom without sunshine, and man cannot live without love.
-
-
-
-
-
A sua pergunta inicial já foi respondida?
Marcos Roberto de Souza Junior
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e 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.
-