2

我正在尝试通过此代码更改 DataGridViewCheckBoxColumn 的项目

        foreach (DataGridViewRow dgvUser in UsersGrid.Rows)
        {
          dgvUser.Cells["ChkSelect"].Value = true;
        }

复选框的值发生了变化,但 UI 上的复选框保持未选中状态。

怎么做 ?

4

3 回答 3

1

然后您需要更新 Datagridview 并刷新。

DataGrid_ABC.Update(); 为了更新gridview中的更改

于 2012-06-15T12:20:40.677 回答
1

这里的问题是它们的DataGridViewCheckboxCell行为与其他细胞不同。出于某种原因,用于确定应如何绘制复选框(选中或未选中)的属性不是ValueFormattedValue

不过我的感觉是,值设置器已在 DataGridViewCheckBoxCell 中被覆盖以正确运行。因此,如果您在 a 上调​​用它,DataGridViewCell则使用的是基础(这不会影响 FormattedValue),而如果您投射单元格,则应该可以工作:

((DataGridViewCheckBoxCell)  dgvUser.Cells["ChkSelect"]).Value = true;
于 2013-08-29T12:57:24.813 回答
0

当我尝试清除同一行中的其他复选框列(在 CellValueChanged 方法中执行)时,我遇到了这个确切的问题。为了解决我的问题,我需要以下代码:

private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    // filter for valid DataGridViewCheckBoxCell columns, if desired
    dgv.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
于 2015-09-25T00:00:08.883 回答