如何检查DataGridview中的CheckBox是否已选中

时间:2014-04-20 08:33:57

标签: c# checkbox datagridview

我在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;
                }
            }

2 个答案:

答案 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;
                }
            }