Вопрос № 153092: MVB2008Expres. Есть форма на которой куча кнопок. потребовалось перехватывать нажатия кнопок на клавиатуре. Как лучше сделать? ведь событие передается кнопке с фокусом, а мнебы на уровне формы перехватывать....
Вопрос № 153.092
MVB2008Expres. Есть форма на которой куча кнопок. потребовалось перехватывать нажатия кнопок на клавиатуре. Как лучше сделать? ведь событие передается кнопке с фокусом, а мнебы на уровне формы перехватывать.
Отвечает: HookEst
Здравствуйте, AlexanderZh! Установите свойство формы KeyPreview в True. Тогда события клавиатуры(например OnKeyPress) будут сначала направляться в обработчик формы (Form1_KeyPress) и только потом в обработчик "контрола" с фокусом ввода(Button2_KeyPress). Если в обработчике формы, для аругментов события (KeyPressEventArgs) установить свойство Handled в True, то обработчик "контрола" вызываться не будет.
Код:
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress MsgBox(e.KeyChar) e.Handled = True End Sub
Private Sub Button2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Button
2.KeyPress MsgBox("Не будет показываться") End Sub
Успехов.
Ответ отправил: HookEst (статус: Специалист)
Ответ отправлен: 07.12.2008, 05:31
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 237968 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Век живи, век учись... Спасибо.
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.