6 Stimmen

Wie zu fangen Control-V in C# app?

Ich habe versucht, WndProc außer Kraft zu setzen, aber es wird keine Meldung beim Einfügen angezeigt.

Dann habe ich versucht, einen benutzerdefinierten Filter zu erstellen, und mit der Methode PreFilterMessage konnte ich eine Nachricht mit dem Wert 257 (KEYUP-Ereignis) abfangen, aber das ist nicht genug...

18voto

Goran Punkte 6712

Verwendung:

 protected override void OnKeyDown(KeyEventArgs e)
 {
      if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
      {
            MessageBox.Show("Hello world");
      }
      base.OnKeyDown(e);
  }

Stellen Sie sicher, dass Ihr Formular KeyPreview = true ist.

2voto

Dan Cristoloveanu Punkte 1904

Sie können dies tun, indem Sie:

  • Das Abfangen der Ctrl + V in KeyDown (oder KeyUp) Ihres Formulars
  • Erstellen eines Menüs in Ihrem Formular, das eine Einfügeoption enthält, die die Ctrl + V Verknüpfung (dies wäre vielleicht besser, da die Benutzer nach den Optionen suchen werden)
  • Abfangen der KEYDOWN-Meldung wie in der Frage beschrieben und Überprüfung, ob Ctrl gedrückt wird (ich glaube, das ist der schwierigste von allen 3).

Ich persönlich würde mich für die Verwendung einer Menüoption entscheiden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X