У меня очень странная проблема с формой Windows Forms.Как указано в заголовке, событие KeyUp вообще не запускается в приложении, пока я не нажму alt + tab из окна, затем вернусь.Неважно, где я нажимаю в приложении, прежде чем отключиться;ничего не происходит.
Кроме того, если я уберу alt-tab с приложения, но нажму на панель задач приложения, чтобы вернуться назад, я все равно не получу события KeyUp.Нажатие, затем alt-tabbing назад, снова делает событие KeyUp правильно.
Кажется, я получаю события KeyUp, только если я Alt-Tab TO приложения - но не в любом другом случае.
Свойство KeyPreview true
.Я не делаю никакой другой обработки ключа в приложении - только в событии KeyUp.
Мне действительно нужно, чтобы это приложение могло реагировать на события KeyUp, особенно сразу после запуска - я не хочучтобы дать моим пользователям команду «alt-tab» убрать, а затем «назад» просто для правильного ввода с клавиатуры.Кто-нибудь видел эту проблему и нашел обходной путь?
Обновление: Я немного повозился с этим и нашел обходной путь - но это определенно клудж, и он мне не нравится.В переопределении OnShown
для формы я добавил вызов this.Focus();
.Я также добавил обработчик событий для this.LostFocus
, который также вызывает this.Focus();
.Это единственная форма в этом приложении, так что ничего из этого не является проблемой - я просто хотел бы понять, почему это происходит.= (Ах, хорошо.
Я добавил это как обновление вместо ответа, потому что, ну, это не ответ. Блеф.