Сочетания клавиш веб-браузера
У меня есть элемент управления WebBrowser, отображающий некоторые HTML.
Я хочу, чтобы пользователь мог копировать весь документ, но не делать ничего другого.
Я установилIsWebBrowserContextMenuEnabled
а такжеWebBrowserShortcutsEnabled
свойства кfalse
и я хочу справитьсяKeyUp
и запустить некоторый код, когда пользователь нажимает Ctrl + C.
Как я могу это сделать?
Элемент управления WebBrowser не поддерживает события клавиатуры.
Я пытался использовать формуKeyUp
событие сKeyPreview
, но это не сработало вообще.
РЕДАКТИРОВАТЬВот мое решение, вдохновленное ответом Джерба.
class CopyableWebBrowser : WebBrowser {
public override bool PreProcessMessage(ref Message msg) {
if (msg.Msg == 0x101 //WM_KEYUP
&& msg.WParam.ToInt32() == (int)Keys.C && ModifierKeys == Keys.Control) {
DoCopy();
return true;
}
return base.PreProcessMessage(ref msg);
}
void DoCopy() {
Document.ExecCommand("SelectAll", false, null);
Document.ExecCommand("Copy", false, null);
Document.ExecCommand("Unselect", false, null);
}
}