C# DataGridView复选框没有';单击另一个控件后才能更新

C# DataGridView复选框没有';单击另一个控件后才能更新,c#,winforms,checkbox,datagridview,C#,Winforms,Checkbox,Datagridview,我为我的DataGridView实现了一个头部复选框(),它选中/取消选中所有复选框。它适用于除第一个复选框以外的所有复选框。第一个复选框仅在单击另一个控件后更新其状态,如下所示: 甚至后来我注意到,不更新其状态的复选框是手动单击的最后一个复选框 老实说,我甚至不确定到底发生了什么。我尝试的是创建一个不可见的虚拟按钮并PerformClick()it,希望它可以算作单击控件并更新复选框的状态 我还研究了Refresh()、Update()和Invalidate(),但是复选框单元格没有这些方

我为我的DataGridView实现了一个头部复选框(),它选中/取消选中所有复选框。它适用于除第一个复选框以外的所有复选框。第一个复选框仅在单击另一个控件后更新其状态,如下所示:

甚至后来我注意到,不更新其状态的复选框是手动单击的最后一个复选框

老实说,我甚至不确定到底发生了什么。我尝试的是创建一个不可见的虚拟按钮并
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()
)更新了复选框的状态

我仍然不确定为什么会发生这种情况,但这解决了问题