目标:
一、选中全选这个复选框,会选中第一列所有的复选框
拉过来一个CheckBox控件(CheckBox1)覆盖在第一列的标题上,文本值:全选
方法:双击上面拉的CheckBox控件,进入其事件
private void checkBox1_CheckedChanged(object sender, EventArgs e) { int count = dataGridView1.Rows.Count; for (int i = 0; i < count; i++) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0]; Boolean flag = Convert.ToBoolean(checkCell.Value); if (flag == false) { checkCell.Value = true; } else { continue; } } }
即可实现:
取被选中的那一行的某列的值:
string aaa= ""; int count = dataGridView1.Rows.Count; for (int i = 0; i < count; i++) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0]; Boolean flag = Convert.ToBoolean(checkCell.Value); if (flag == true) { aaa= this.dataGridView1.Rows[i].Cells[2].Value.ToString(); } }
这就是取被选中的那一行的第三列的值
目标:
二、取消所有选中的复选框,CheckBox1未选中的情况下,取消第一列所有已选中的
方法:
private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) { int count = dataGridView1.Rows.Count; for (int i = 0; i < count; i++) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0]; Boolean flag = Convert.ToBoolean(checkCell.Value); if (flag == false) { checkCell.Value = true; } else { continue; } } } else { int count = dataGridView1.Rows.Count; for (int i = 0; i < count; i++) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0]; Boolean flag = Convert.ToBoolean(checkCell.Value); if (flag == true) { checkCell.Value = false; } else { continue; } } } }