如何使用c#中的checkboxheader仅检查数据网格中的已启用复选框?

时间:2017-03-23 06:37:48

标签: c# checkbox datagridview

我有一个名为ShowGrid的Datagrid。 Datagrid的第一列是Checkbox列,我有一个CheckboxHeader,用于检查/取消选中Datagrid中的所有行。

我还可以为Buttonclick选择特定行复选框。在Buttonclick之后,我禁用特定行的复选框。

在此之后,如果我选中checkboxHeader,则也会检查已禁用的复选框。那么如何在选中CheckboxHeader时仅选择启用的复选框。我使用了以下代码,但我得到Object reference not set to an instance of an object.异常。

    foreach (DataGridViewRow row in ShowGrid.Rows)
            {
                if ((bool)row.Cells[0].Value == true && (bool)row.Cells[0].ReadOnly == false)
                {
                    ShowGrid[0, row.Index].Value = ((CheckBox)ShowGrid.Controls.Find("checkboxHeader", true)[0]).Checked;
                }
            }          
        ShowGrid.EndEdit();

1 个答案:

答案 0 :(得分:0)

更新您的if语句代码,如下所示

if (row.Cells != null &&(bool)row.Cells[0].Value == true && (bool)row.Cells[0].ReadOnly == false)
            {
                ShowGrid[0, row.Index].Value = ((CheckBox)ShowGrid.Controls.Find("checkboxHeader", true)[0]).Checked;
            }