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