Я использую DataGridView в своем приложении WinForms. Моя главная цель - не дать клавише Enter перейти к следующему ряду в сетке. Я все еще хочу, чтобы клавиша ввода проверила и завершила режим редактирования.
Я нашел эту запись FAQ и подкласс DataGridView для переопределения ProcessDialogKey (). Если нажата клавиша Enter, я вызываю EndEdit (), в противном случае я вызываю base.ProcessDialogKey ().
Отлично работает, за исключением события CellValidating.
В настоящее время я просто вручную вызываю логику проверки перед вызовом EndEdit, но, похоже, я что-то упустил.
Полагаю, я мог бы вызвать OnCellValidating, но тогда бы я волновался, что пропускаю какое-то другое событие. Что мне действительно нужно, так это некоторый вариант EndEdit (), который ведет себя так же, как нажатие клавиши ввода в последнем ряду сетки с добавлением отключенного.