DataGridView和复选框

本文关键字:复选框 DataGridView | 更新日期: 2023-09-27 18:13:52

我正在制作一个应用程序,其中有一个带有按钮和datagridview的页面。

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

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

问题:

我无法选中复选框。字面上。当我点击它的时候,它就跑了到"pressed/onPress"状态,但永远不会变为"checked"。

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

DataGridView和复选框

首先检查您的DataGridView是否为Enabled或不是ReadOnly,如果这没有帮助检查Column是否非只读。

问题答案的第二部分取决于你是否想立即知道哪个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;
}