Событие Keydown, когда форма не активна - PullRequest
2 голосов
/ 14 июля 2011

Как я могу захватить событие Keydown формы, которая не активна?

Я нашел ссылки на ProcessKeyDown, но не смог найти никакой помощи по этому вопросу.

Ответы [ 5 ]

2 голосов
/ 13 апреля 2015

Пожалуйста, установите KeyPreview формы в true. Сначала выберите форму и нажмите клавишу f4, она откроет окно свойств, и их значение будет KeyPreview и установите его в значение true.

0 голосов
/ 14 июля 2011

Если то, что вы хотите сделать, это вызвать некоторый код в вашей программе после нажатия клавиш в операционной системе относительно того, активна ли форма или нет, тогда вы можете использовать метод, описанный в этой статье:

Обработка глобальных мышиных и клавиатурных хуков в C #

Вот простой пример программы, использующей эту библиотеку для симуляции виртуальной мыши нажатием цифровых клавиш на цифровой клавиатуре. «1» - «4» и «6» - «9» - клавиши со стрелками, «5» - левый щелчок, «0» - двойной щелчок.

Program.cs

Form1.cs

Заметьте, что я не вызывал Application.Run (); с новым параметром Form1 (), чтобы приложение работало, но не было видно на экране. Для завершения программы вам нужно нажать CTRL + SHIFT + ESC , перейти на страницу процессов и завершить процесс вручную.

0 голосов
/ 14 июля 2011

События нажатия клавиш отправляются только тем элементам управления, которые имеют фокус ввода. Вы можете использовать свойство Control.HasFocus, чтобы определить, имеет ли ваш элемент управления фокус или нет. Используйте метод Control.Focus (), чтобы придать фокус управления.

0 голосов
/ 14 июля 2011

Вы можете установить низкоуровневый хук клавиатуры, используя SetWindowsHookEx() для прослушивания событий нажатия клавиш.

0 голосов
/ 14 июля 2011

Правый cilck на форме и свойствах cilck, тогда будет кнопка flash, она предназначена для событий для этого объекта. Найти их событие Keypress. просто нажмите на столбец, соответствующий этому событию. Это создаст событие для нажатия клавиши.

Для документации и справки, проверьте эту ссылку.

...