Como trabalhar com checkboxcolumn no DataGridView

Considere o seguinte formulário, onde a primeira coluna do DataGridView é do tipo DataGridViewCheckBoxColumn

 

checkbox com datagridview

 

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);

selecionar todas as linhas no datagridview

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!

Deixe seu comentário