Обнаружение клавиши со стрелкой - KeyDown для всего окна

У меня есть форма WinForms (C # /. Net), и она содержит PictureBox, MenuStrip, Panel и два элемента управления Button.

Мне нужно обнаружить событие KeyDown для клавиш со стрелками для всего окна; то есть, когда окно находится на переднем плане, независимо от того, какой из дочерних элементов управления имеет фокус, мне нужно знать, когда нажата клавиша со стрелкой, и выполнять некоторый код, когда это происходит.

Я не хочу идти и прикрепите обработчик событий для каждого элемента управления. Есть ли способ лучше? Как я могу это сделать?

Изменить: Используя KeyPreview, как указано в ответе ниже, я могу обнаруживать другие ключи. Не удается обнаружить клавиши со стрелками. Я могу обнаруживать клавиши со стрелками только тогда, когда кнопки в моей форме отключены. Или же они сосредотачиваются взад и вперед и не запускают событие. Как я могу обнаружить клавиши со стрелками с кнопками в форме?

11
задан 25 February 2011 в 07:01
поделиться