Событие KeyUp одной кнопки при переходе на Ввод события другой кнопки - PullRequest
0 голосов
/ 16 июля 2009

У меня есть событие keyUp в button1 и EnterEvent в button2

Когда я нажимаю кнопку 1 и использую свою стрелку вверх, автоматически происходит переход к событию «Ввод кнопки 2» после входа в событие «KeyUp» кнопки 1

.

чувствует что-то подозрительное; Пожалуйста, помогите !!

Ответы [ 2 ]

1 голос
/ 18 июля 2009

Просто чтобы прояснить, событие KeyUp не относится конкретно к клавише Up на вашей клавиатуре. Это событие, которое срабатывает каждый раз, когда вы отпускаете любую клавишу. События клавиатуры - KeyDown (когда вы нажимаете любую клавишу вниз), KeyPress (после KeyDown) и KeyUp (когда вы отпускаете клавишу). Если вы удерживаете нажатой клавишу, события KeyDown и KeyPress запускаются повторно до тех пор, пока вы не отпустите, после чего KeyUp сработает. (Примечание: нажатие клавиши Enter на элементе управления, установленном по умолчанию, или нажатие клавиши Esc на элементе управления, установленном как Отмена, НЕ вызовет никаких событий Key для этих элементов управления.)

Кроме того, событие Enter не относится к клавише Enter, оно относится к любому вводу этого элемента управления, будь то нажатие на него мыши или переход к нему с помощью клавиатуры.

В свете всего этого, вот что выглядит происходящим:

Вы нажимаете и отпускаете стрелку вверх на кнопке button1, вызывая событие KeyUp кнопки button1. Затем фокус переместится на button2 (потому что вы нажали клавишу со стрелкой вверх, навигационную клавишу) и вызовет событие Enter для button2 (потому что вы только что нажали на button2).

0 голосов
/ 16 июля 2009

С MSDN

«Событие Enter наступает до того, как элемент управления фактически получает фокус от элемента управления в той же форме.»

звучит так, как будто все делает правильно, когда вы нажимаете стрелку вверх, фокус переключается на следующую кнопку (Button2), которая вызывает событие Enter.

...