Я пытался сделать более или менее то же самое в приложении Compact Framework (я хотел, чтобы Form захватывал клавиши F1..Fn и обрабатывал их глобально, одновременно позволяя элементам управления обрабатывать курсор и цифровые клавиши ).
Приведенное выше решение Simon P Stevens идеально подходит для настольных компьютеров .NET, но PreviewKeyDown не поддерживается CF. Итак, мое решение было:
при загрузке формы зарегистрируйте обработчик KeyDown каждого элемента управления, используя For Each ctl As Control In Controls
и AddHandler ctl.KeyDown, AddressOf OnControlKeyDown
Создайте OnControlKeyDown
и выполните там специальную обработку для клавиш Fn. Все остальные нажатия клавиш остаются без изменений.
Кажется, это достаточно простой способ реализовать это для Compact Framework.