【发布时间】:2018-06-29 15:18:11
【问题描述】:
我为我的 DataGridView 实现了一个标题复选框 (from this answer),用于选中/取消选中所有复选框。它适用于除第一个复选框之外的所有复选框。第一个复选框只会在单击另一个控件后更新其状态,如下所示:
甚至后来我注意到没有更新其状态的复选框是最后一个被手动点击的复选框。
说实话,我什至不确定发生了什么。我尝试的是创建一个不可见的虚拟按钮并 PerformClick() 它,希望它可以算作对控件的单击并更新复选框的状态。
我还研究了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;
}
}
【问题讨论】:
标签: c# winforms checkbox datagridview