用户更改单元格值时要捕获的DataGridView事件

我有一个用C#编写的Winforms应用程序。

在我的一个DataGridViews中,我设置了所有列,除了一个名为’Reference’的列,ReadOnly = true;

我希望应用程序知道用户何时更改了“参考”列中的任何内容,但到目前为止我尝试过的所有事件都比用户进行更改时要多得多。 例如,CurrentCellChanged在最初呈现DataGridView时触发,并且每次用户只需单击行或标记行等。

我只对在’Reference’列中捕获用户对数据的更改感兴趣,该列是ReadOnly = false的唯一列;

哪个是最好的事件?

CellValueChanged是你需要的:

 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e){ if(dataGridView1.Columns[e.ColumnIndex].Name == "Reference"){ //your code goes here } } 

我认为活动CellEndEdit也适合您的需求:

 private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e){ if(dataGridView1.Columns[e.ColumnIndex].Name == "Reference"){ //your code goes here } } 

DataGridView.CurrentCellDirtyStateChanged