Considere o seguinte formulário, onde a primeira coluna do DataGridView é do tipo DataGridViewCheckBoxColumn
Ler todas as linhas do dataGridView
Trabalhar com checkbox no datagriview exige correr todas as linhas e testar o valor delas, note que os códigos a seguir são semelhantes pois utilizam da mesma lógica.
Vamos programar primeiro o botão “Selecionar tudo”
Selecionar todos os chekboxes de um DataGridView
Para selecionar todos os checkbox da primeira coluna do datagridview, use o código a seguir dentro do botão Selecionar tudo
int TotalRows = Convert.ToInt32(dataGridView1.Rows.Count.ToString()); int selecionados = 0; for (int x = 0; x < TotalRows; x++) { if (dataGridView1.Rows[x].Cells[0].Value.ToString() == "0") { dataGridView1.Rows[x].Cells[0].Value = 1; selecionados++; } } MessageBox.Show(selecionados + " lanches foram selecionados", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
Desmarcar todos os chekboxes de um DataGridView
Para desmarcar todos os checkbox da primeira coluna do datagridview, basta reutilizar o código anterior, é possível criar um método parametrizado para otimizar ainda mais o código.
Mas sem método, o código ficaria assim:
int TotalRows = Convert.ToInt32(dataGridView1.Rows.Count.ToString()); int selecionados = 0; for (int x = 0; x < TotalRows; x++) { if (dataGridView1.Rows[x].Cells[0].Value.ToString() == "1") { dataGridView1.Rows[x].Cells[0].Value = 0; selecionados++; } } MessageBox.Show(selecionados + " lanches foram selecionados", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
Verificar todos os chekboxes selecionados de um DataGridView
Para verificar quais os checkboxes foram selecionados, basta utilizar o seguinte código no botão
int TotalRows = Convert.ToInt32(dataGridView1.Rows.Count.ToString()); int selecionados = 0; for (int x = 0; x < TotalRows; x++) { if (dataGridView1.Rows[x].Cells[0].Value.ToString() == "True") { MessageBox.Show("Selecionei o " + dataGridView1.Rows[x].Cells[1].Value.ToString()); selecionados++; } } if (selecionados == 0) MessageBox.Show("Nenhum lanche foi selecionado", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); if (selecionados > 0) MessageBox.Show(selecionados + " lanches foram comidos", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
É isso aí pessoal, grande abraço!