我在Windows格式的DataGridView中有13个CheckBoxes,我想在选中第一个CheckBox时检查所有CheckBox,并在取消选中第一个CheckBox时取消选中所有CheckBox,这样我该怎么做。我的代码适用于检查所有复选框,但在取消选中时失败。 我正在使用CellContentClick事件。 这是我的代码
if (e.ColumnIndex == 1)
{
for (int k = 2; k <= 13; k++)
{
DataGridViewCell cell = dataGridView1.Rows[e.RowIndex].Cells[k];
DataGridViewCheckBoxCell checkCell = cell as DataGridViewCheckBoxCell;
checkCell.Value = true;
}
}
答案 0 :(得分:0)
试试这个:
if (e.ColumnIndex == 1)
{
DataGridViewCheckBoxCell firstCell =
dataGridView1.Rows[e.RowIndex].Cells[1] as DataGridViewCheckBoxCell;
if(firstCell == null)
{
return;
}
for (int k = 2; k <= 13; k++)
{
DataGridViewCell cell = dataGridView1.Rows[e.RowIndex].Cells[k];
DataGridViewCheckBoxCell checkCell = cell as DataGridViewCheckBoxCell;
checkCell.Value = firstCell.Value;
}
}
答案 1 :(得分:0)
您只使用for循环分配true
值,您还需要将false
值分配给复选框取消选中您的所有复选框..
if (e.ColumnIndex == 1)
{
for (int k = 2; k <= 13; k++)
{
DataGridViewCell cell = dataGridView1.Rows[e.RowIndex].Cells[k];
DataGridViewCheckBoxCell checkCell = cell as DataGridViewCheckBoxCell;
checkCell.Value = dataGridView1.Rows[1].Cells[1].Value;
}
}