C# DataGridView复选框没有';单击另一个控件后才能更新
我为我的DataGridView实现了一个头部复选框(),它选中/取消选中所有复选框。它适用于除第一个复选框以外的所有复选框。第一个复选框仅在单击另一个控件后更新其状态,如下所示: 甚至后来我注意到,不更新其状态的复选框是手动单击的最后一个复选框 老实说,我甚至不确定到底发生了什么。我尝试的是创建一个不可见的虚拟按钮并C# DataGridView复选框没有';单击另一个控件后才能更新,c#,winforms,checkbox,datagridview,C#,Winforms,Checkbox,Datagridview,我为我的DataGridView实现了一个头部复选框(),它选中/取消选中所有复选框。它适用于除第一个复选框以外的所有复选框。第一个复选框仅在单击另一个控件后更新其状态,如下所示: 甚至后来我注意到,不更新其状态的复选框是手动单击的最后一个复选框 老实说,我甚至不确定到底发生了什么。我尝试的是创建一个不可见的虚拟按钮并PerformClick()it,希望它可以算作单击控件并更新复选框的状态 我还研究了Refresh()、Update()和Invalidate(),但是复选框单元格没有这些方
PerformClick()
it,希望它可以算作单击控件并更新复选框的状态
我还研究了Refresh()
、Update()
和Invalidate()
,但是复选框单元格没有这些方法,我无法执行
选中/取消选中标题复选框时启动此功能:
private bool selectAllChecked = false;
private void SelectAll(object sender, EventArgs e) {
selectAllChecked = !selectAllChecked;
foreach (DataGridViewRow row in myGridView.Rows) {
DataGridViewCheckBoxCell checkb = (DataGridViewCheckBoxCell)row.Cells["Checkbox"];
checkb.Value = selectAllChecked;
}
}
看起来我只是尝试刷新/更新/使复选框单元格无效,而不是DataGridView,而且我使用了错误的方法 调用my DataGridView(
myGridView.RefreshEdit()
)更新了复选框的状态
我仍然不确定为什么会发生这种情况,但这解决了问题