我有一个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}
答案 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());
}