我正在尝试通过此代码更改DataGridViewCheckBoxColumn的项目
foreach (DataGridViewRow dgvUser in UsersGrid.Rows)
{
dgvUser.Cells["ChkSelect"].Value = true;
}
复选框的值已更改,但UI上的复选框仍未选中。
怎么做?
答案 0 :(得分:1)
您需要更新Datagridview和Refresh。
DataGrid_ABC.Update();为了更新gridview中的更改
答案 1 :(得分:1)
这里的问题是DataGridViewCheckboxCell
与其他单元格的行为不同。出于某种原因,用于确定应如何绘制(选中或取消选中)复选框的属性不是Value
,而是FormattedValue
我的感觉是,Value setter已在DataGridViewCheckBoxCell中被覆盖以正确操作。因此,如果您在DataGridViewCell
上调用它,则使用 base (不影响FormattedValue),而如果您投射该单元,则应该有效:
((DataGridViewCheckBoxCell) dgvUser.Cells["ChkSelect"]).Value = true;
答案 2 :(得分:0)
当我尝试清除同一行中的其他复选框列时(在CellValueChanged方法中执行),我遇到了这个问题。要解决我的问题,我需要以下代码:
private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
// filter for valid DataGridViewCheckBoxCell columns, if desired
dgv.CommitEdit(DataGridViewDataErrorContexts.Commit);
}