如何检测DataGridView CheckBox事件更改?

我有一个winforms应用,当控件中嵌入的复选框DataGridView被选中/未选中时,想要触发一些代码。我尝试过的每件事

  1. CheckBox单击时立即触发,但在其检查状态更改之前触发,或
  2. 仅在CheckBox失去焦点时触发

我似乎找不到在检查状态更改后立即触发的事件。


我想要实现的是,当一个CheckBox中的a的检查状态DataGridView发生变化时,另外两个中的数据DataGridView发生变化。然而,我使用的所有事件以及其他网格中的数据仅CheckBox在第一个DataGridView失去焦点之后才发生变化。

回答:

要处理DatGridViews

CheckedChanged事件,您必须首先CellContentClick触发(没有CheckBoxes当前状态!),然后调用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

以上是 如何检测DataGridView CheckBox事件更改? 的全部内容, 来源链接: utcz.com/qa/428718.html

回到顶部