Вы пытались переопределить ProcessCmdKey WebBroswer ... Я смутно припоминаю, что браузер делает что-то необычное с всплывающими событиями ... для обеспечения безопасности. Да, вот оно:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.processcmdkey.aspx Говорит:
Этот метод вызывается во время предварительной обработки сообщения для обработки командных клавиш . Клавиши управления - это клавиши, которые всегда имеют приоритет над обычными клавишами ввода. Примеры командных клавиш включают в себя ускорители и ярлыки меню. Метод должен возвращать true, чтобы указать, что он обработал командный ключ, или false, чтобы указать, что ключ не является командным ключом. Этот метод вызывается только тогда, когда элемент управления размещен в приложении Windows Forms или в качестве элемента управления ActiveX.
Метод ProcessCmdKey сначала определяет, имеет ли элемент управления ContextMenu, и если да, позволяет ContextMenu обрабатывать командную клавишу. Если командная клавиша не является ярлыком меню, а у элемента управления есть родительский элемент, ключ передается методу ProcessCmdKey родительского элемента. Чистый эффект состоит в том, что командные ключи «пузырились» вверх по иерархии управления. В дополнение к клавише, которую нажал пользователь, данные клавиши также указывают, какие, если они есть, клавиши-модификаторы были нажаты одновременно с клавишей. Клавиши-модификаторы включают клавиши SHIFT, CTRL и ALT.
Не думаю, что это позволит вам перехватывать ключи браузера на уровне формы ... Я думаю, что события съедаются элементом управления WebBrowser.
Приветствия. Кит.
РЕДАКТИРОВАТЬ:
http://msdn.microsoft.com/en-us/library/system.windows.forms.keys.aspx говорит:
KeyCode Битовая маска для извлечения кода ключа из значения ключа.
Модификаторы Битовая маска для извлечения модификаторов из значения ключа.
и пример содержит строки:
if(e.KeyCode != Keys.Back)
if (Control.ModifierKeys == Keys.Shift) {
Так что, я думаю, вам нужно немного перемешать этот ключ в его составных частях.