每当用户通常在控件的 TextBox 列中结束编辑模式时(无论用户是否实际修改了值;但当用户通过按 ESC 取消编辑模式时),我都需要执行一项任务DataGridView
。
我尝试了控件本身以及编辑控件的几个事件DataGridView
,但没有一个完全符合我的要求:
DataGridView.CellValidating
和DataGridView.CellValidated
:
每当用户选择另一个单元格时,都会触发这些事件,即使该单元格未处于编辑模式。我试图检查事件IsCurrentCellDirty
内部的属性CellValidating
。这几乎是我需要的,但IsCurrentCellDirty
仅在用户实际更改值时才设置。但是当用户通常在没有更改任何内容的情况下结束编辑模式时,我还需要执行该任务。当用户取消编辑模式时,不会触发这些事件,这很好。
DataGridView.CellValueChanged
这个事件也经常被触发(当单元格的值以编程方式设置时它也会被触发)。
DataGridView.CellEndEdit
这个活动几乎是我想要的。但是当用户通过按 ESC 取消编辑模式时也会触发它。有没有办法检查CellEndEdit
事件内部是否取消了编辑模式?
DataGridView.CellParsing
这个活动几乎是我想要的。但是当用户结束编辑模式而没有更改任何内容时,它不会被触发。
Validating
和Validated
编辑控件的事件
我在事件里面注册了这些DataGridView.EditingControlShowing
事件。它们几乎可以满足我的要求,但是当用户通过按 ESC 取消编辑模式时它们也会被触发。有没有办法检查这些事件中是否取消了编辑模式?
关于我可以注册的事件和/或我可以检查以实现所需行为的标志的任何其他建议?