检查DataGridview中的复选框是否已选中?

时间:2014-04-19 10:05:10

标签: c# checkbox datagridview

我在Windows窗体中有DataGridView,其中包含13个复选框。一个checbox i-e(第一个)是检查基本上几个月的所有其他复选框。所以现在我希望当我选中第一个复选框时,应检查所有其他复选框,当我取消选中第一个复选框时,应取消选中所有复选框。当我检查第一个复选框时,我的代码工作正常,但是当我取消选中第一个复选框时,仍会选中所有复选框。但我希望他们不受限制。我使用了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;
    }
}

1 个答案:

答案 0 :(得分:0)

值返回一个对象类型,无法与布尔值进行比较。您可以将值强制转换为bool

 if ((bool)row.Cells[1].Value == true)
        {
            // what I want to do
        }

试试这个:

 foreach (GridViewRow gvrow in gvDetails.Rows)
        {
            CheckBox chk = (CheckBox)gvrow.FindControl("chkSelect");
            if (chk != null & chk.Checked)
            {
                str += gvDetails.DataKeys[gvrow.RowIndex].Value.ToString() + ',';
                strname += gvrow.Cells[2].Text + ',';
            }
        }