从从单元格离开事件调用的方法重新加载数据网格

时间:2015-09-03 07:10:26

标签: c# events datagridview

我有一个Datagridview Cell Leave事件,从中调用一个方法,我重新加载我的网格值,但似乎我不能在离开事件中重新加载网格,

private void TestGrid_CellLeave(object sender, DataGridViewCellEventArgs e)  
{
    int currentCell = TestGrid.CurrentCell.ColumnIndex;
    int oldCell = e.ColumnIndex;
    Loadfinalscreen();
}

public void Loadfinalscreen()
{
    clearGrid();

}
public void clearGrid()
{
    TestGrid.Rows.Clear();
    TestGrid.Columns.Clear();
}

它引发了以下异常:

  

无法在此事件处理程序中执行操作。

     

System.SystemException {System.InvalidOperationException}

1 个答案:

答案 0 :(得分:0)

我不知道你为什么这样做。但作为一般建议,任何时候你都无法在某个事件中做某事,使用延迟执行(在WF中由Control.BeginInvoke实现)。对于你的情况,它可能是这样的:

private void TestGrid_CellLeave(object sender, DataGridViewCellEventArgs e)  
{
    int currentCell = TestGrid.CurrentCell.ColumnIndex;
    int oldCell = e.ColumnIndex;
    BeginInvoke(new Action(Loadfinalscreen());
}