Скрытое меню, которое вы используете, прекрасно работает для ярлыков, которые являются допустимыми ярлыками пунктов меню, но если вы хотите использовать любую клавишу в качестве ярлыка (например, Page Up / Page Down), вам понадобится другой трюк.
Еще один способ сделать это без участия P / Invoke - установить для свойства Form.KeyPreview
вашей формы значение true. Это приведет к тому, что все нажатия клавиш будут сначала отправляться в форму, независимо от того, какой элемент управления имеет фокус. Затем вы можете переопределить OnKeyDown, OnKeyPress и / или OnKeyUp для обработки нажатия клавиши перед любым из ваших элементов управления.