Мне нужно выполнить задачу всякий раз, когда пользователь обычно завершает режим редактирования (независимо от того, действительно ли пользователь изменил значение или нет; но не тогда, когда пользователь отменяет режим редактирования, нажав ESC) в столбце TextBox DataGridView
управление.
Я пробовал несколько событий самого элемента управления DataGridView
, а также элемента управления редактированием, но ни одно из них не выполняет именно то, что я хочу:
DataGridView.CellValidating
и DataGridView.CellValidated
:
Эти события запускаются всякий раз, когда пользователь выбирает другую ячейку, даже если ячейка не была в режиме редактирования. Я попытался проверить свойство IsCurrentCellDirty
внутри события CellValidating
. Это почти то, что мне нужно, но IsCurrentCellDirty
устанавливается только тогда, когда пользователь фактически изменяет значение. Но мне также нужно выполнить задачу, когда пользователь обычно завершает режим редактирования, ничего не меняя. Эти события не запускаются, когда пользователь отменяет режим редактирования, что хорошо.
DataGridView.CellValueChanged
Это событие также вызывается слишком часто (оно также запускается, когда значение ячейки устанавливается программно).
DataGridView.CellEndEdit
Это событие почти то, что я хочу. Но он также срабатывает, когда пользователь отменяет режим редактирования нажатием ESC. Есть ли способ проверить, был ли отменен режим редактирования внутри события CellEndEdit
?
DataGridView.CellParsing
Это событие почти то, что я хочу. Но он не срабатывает, когда пользователь завершает режим редактирования, ничего не изменив.
Validating
и Validated
события управления редактированием
Я зарегистрировался на эти события внутри события DataGridView.EditingControlShowing
. Они делают почти то, что я хочу, но они также запускаются, когда пользователь отменяет режим редактирования нажатием ESC. Есть ли способ проверить, был ли режим редактирования отменен внутри этих событий?
Любые другие предложения о событиях, на которые я мог бы зарегистрироваться, и / или флаги, которые я мог бы проверить, чтобы достичь желаемого поведения?