WebBrowser-Tastaturkürzel
Ich habe ein WebBrowser-Steuerelement, das HTML anzeigt.
Ich möchte, dass der Benutzer das gesamte Dokument kopieren kann, aber nichts anderes tun kann.
Ich habe das eingestelltIsWebBrowserContextMenuEnabled
undWebBrowserShortcutsEnabled
Eigenschaften zufalse
und ich will damit umgehenKeyUp
und führen Sie Code aus, wenn der Benutzer Strg + C drückt.
Wie kann ich das machen?
Das WebBrowser-Steuerelement unterstützt keine Tastaturereignisse.
Ich habe versucht, die Formulare zu verwendenKeyUp
Veranstaltung mitKeyPreview
, aber es hat überhaupt nicht geschossen.
BEARBEITEN: Hier ist meine Lösung, inspiriert von Jerbs Antwort.
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);
}
}