如何避免在C#中的datagridview结束编辑事件中重新调用SetCurrentCellAddressCore函数

时间:2016-09-11 18:05:49

标签: c# datagridview

我有datagridview datasourcedatatable, 当用户更改它的值时(在datagridview的单元格中),cellendedit将数据更新为database,然后将database中的新数据设置为该数据表并加载在datagridview

当我通过按Enter键结束编辑单元格时,一切都正常,但是当我想通过从单元格中保留焦点来结束编辑时,发生了异常:

  

操作无效,因为它导致对SetCurrentCellAddressCore函数的可重入调用。

使用此代码我会让错误消失:

private void RationFormulationdgv_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    if (!RationFormulationdgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected)
    {
        return;
    } 

    RationFormulationDBConnection.UpdateFeedsDetails(this);
    RationFormulationDBConnection.SetFeedsIntoRationdormulationdgv(this);
}

但问题是在失去焦点时不会应用编辑。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我通过将代码从CellEndEdit事件移动到Cellvaluechanged事件来解决我的问题,这似乎没问题并且coeds运行没有任何问题