C# dataGridView_CellValueChanged事件

C# 输入完以后立即更新缓冲区(DataGridView CheckBox列checked变化后就触发CellValueChanged事件)

在DataGridView添加如下的事件( CurrentCellDirtyStateChanged)

private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
  //添加下面的代码后,你用鼠标点击CheckBox列的check变化后触发CellValueChanged事件
  if (this.dataGridView.CurrentCell.ColumnIndex == 0)

  {
    this.dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
  }
}

注意还有一个问题:

添加DataGridViewCheckBoxColumn列后,网上有说点击check后状态不改变的问题。

我的经验:

1、DataGridView必须选择Eable Editing,否则你点击check状态不变

2、DataGridViewCheckBoxColumn的ReadOnly设置为false