我有一个winforms应用,当控件中嵌入的复选框DataGridView被选中/未选中时,想要触发一些代码。我尝试过的每件事
DataGridView
CheckBox
我似乎找不到在检查状态更改后立即触发的事件。
编辑:
我想要实现的是,当一个CheckBox中的a的检查状态DataGridView发生变化时,另外两个中的数据DataGridView发生变化。然而,我使用的所有事件以及其他网格中的数据仅CheckBox在第一个DataGridView失去焦点之后才发生变化。
要处理DatGridViews CheckedChanged事件,您必须首先CellContentClick触发(没有CheckBoxes当前状态!),然后调用CommitEdit。这将依次触发CellValueChanged您可以用来完成工作的事件。 这是Microsoft的疏忽 。做类似以下的事情…
DatGridView
CheckedChanged
CellContentClick
CommitEdit
CellValueChanged
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(); }
我希望这有帮助。
PS检查本文https://msdn.microsoft.com/zh- cn/library/system.windows.forms.datagridview.currentcelldirtystatechanged(v=vs.110).aspx