0

我正在制作一个应用程序,其中有一个带有按钮的页面和一个内部数据网格视图。

数据来自 MySQL,人口是这样完成的:

this.ObjectsTable.Rows.Add(Objects.GetValue(index, 0), 
                           Objects.GetValue(index, 1), 
                           Objects.GetValue(index, 2), 
                           Objects.GetValue(index, 3));

问题:

我无法选中复选框。字面上地。当我单击它时,它只是进入“按下/onPress”状态,但从未进入“选中”状态。

如何解决?以及如何获取复选框被选中的行?我想创建一个数组,然后遍历它们。

4

1 回答 1

1

首先检查您的DataGridViewisEnabled或 not ReadOnly,如果这没有帮助检查 theColumn是否不是只读的。

您问题答案的第二部分取决于您是否想立即知道哪些CheckBox已被检查。是的话然后使用这个事件:

private void GridCellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex < 0 || e.ColumnIndex < 0)
    {
        return;
    }

    if (dataGridView1[e.ColumnIndex, e.RowIndex] is DataGridViewCheckBoxCell)
    {
        var check = (dataGridView1[e.ColumnIndex, e.RowIndex].Value as bool?) ?? false;

        if (check)
        {
            //checked
        }
    }
}

或者只是遍历所有行并使用复选框检查单元格的值:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
      var check = (row.Cells[0].Value as bool?) ?? false;
}
于 2013-05-15T07:31:43.750 回答