Когда у кнопки есть фокус, нажатие клавиши ENTER вызовет события Click
и KeyUp
.
TAB вызовет событие KeyUp, если нажатие этой клавиши приведет к тому, что фокус достигнет кнопки, но не при нажатии, чтобы переместить фокус на другой элемент управления.
Если нажать Shift + TAB , чтобы переместить фокус на Button
, событие KeyUp
будет вызвано дважды.
Событие KeyDown
возникает только при нажатии клавиш Shift + TAB для перемещения фокуса на предыдущий элемент управления в порядке TabIndex
.
Любая другая клавиша, нажатая, когда у кнопки есть Фокус, вызовет события KeyUp
и KeyDown
.
Свойство KeyPreview
формы не изменит это поведение.
За исключением клавиш Shift + TAB , когда они используются для перемещения фокуса на предыдущий элемент управления.
В этом случае возникает только событие KeyDown
.
Если кнопка является AcceptButton или CancelButton формы, нажатие клавиш ENTER или ESC поднимет Click
событие кнопки.
Это может вызвать проблему, если также присутствуют многострочные элементы управления TextBox
, поскольку нажатие клавиши ENTER не приведет к созданию новой строки, поскольку событие KeyDown
не вызывается для этой клавиши, а только для KeyUp