我有一个 winforms 应用程序,想在选中/取消选中 DataGridView
控件中嵌入的复选框时触发一些代码。我尝试过的每个事件要么
- 在
CheckBox
被点击但在其选中状态改变之前触发,或者 - 仅在
CheckBox
失去焦点时触发
我似乎找不到在选中状态更改后立即触发的事件。
编辑:
我想要实现的是,当一个 DataGridView
中的 CheckBox
的选中状态发生变化时,另外两个 DataGridView
中的数据变化。然而,在我使用的所有事件中,其他网格中的数据仅在第一个 DataGridView
中的 CheckBox
失去焦点后发生变化。
最佳答案
要处理 DatGridView
的 CheckedChanged
事件,您必须首先让 CellContentClick
触发(它没有 CheckBox
es 当前状态!)然后调用 CommitEdit
。这将依次触发 CellValueChanged
事件,您可以使用它来完成您的工作。 这是 Microsoft 的疏忽。做一些类似下面的事情......
private void dataGridViewSites_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{
dataGridViewSites.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
/// <summary>
/// Works with the above.
/// </summary>
private void dataGridViewSites_CellValueChanged(object sender,
DataGridViewCellEventArgs e)
{
UpdateDataGridViewSite();
}
希望对您有所帮助。
关于c# - 如何检测 DataGridView CheckBox 事件变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11843488/