Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何使用DataGridView的CellEnter和CellLeave事件?_.net_Winforms_Events_Datagridview - Fatal编程技术网

.net 如何使用DataGridView的CellEnter和CellLeave事件?

.net 如何使用DataGridView的CellEnter和CellLeave事件?,.net,winforms,events,datagridview,.net,Winforms,Events,Datagridview,我需要在牢房进出时处理一些事情。但是,我发现,在单元格没有实际进入或单击鼠标的情况下,会触发这些命令。例如,当我更改数据源时,他们似乎被解雇了。我以以下方式重写了OnDataSourceChanged事件: protected override void OnDataSourceChanged(EventArgs e) { _isBinding = true; base.OnDataSoruceChanged(e); _isBinding = false; } 然后,我在CellE

我需要在牢房进出时处理一些事情。但是,我发现,在单元格没有实际进入或单击鼠标的情况下,会触发这些命令。例如,当我更改数据源时,他们似乎被解雇了。我以以下方式重写了OnDataSourceChanged事件:

protected override void OnDataSourceChanged(EventArgs e)
{
  _isBinding = true;
  base.OnDataSoruceChanged(e);
  _isBinding = false;
}

然后,我在CellEnter事件中使用_isBinding标志来绕过我的逻辑。然而,随后我看到OnBindingContextChanged事件也触发了这些事件。我也可以覆盖此事件,但它何时结束?可能还有其他调用CellEnter/CellLeave事件的事件我还没有测试过。有更好的方法吗?

您对CellValueChanged事件感兴趣吗?无法从您的问题中理解我正在尝试实现撤消/重做,在进行任何编辑之前,我需要将我的业务对象推送到撤消/重做堆栈中。离开单元格后,我需要将更改的业务对象推送到撤消/重做堆栈上。您是否尝试使用DataGridView.CellBeginEdit事件?我很同情,这就像在追逐一条永无止境的路径