Wie PASTE Operationen in ScintillaNet außer Kraft zu setzen?
-
03-10-2019 - |
Frage
Ich bin mit der Scintilla Kontrolle von ScintillaNet , und ich brauche eine gewisse Kontrolle über die Paste Operationen haben (um ein paar Sachen und / oder aktualisieren Sie den Text in der Lage sein zu überprüfen, geklebt werden).
Ich habe versucht, eine Unterklasse des Scintilla-Steuerelement zu erstellen und die WndProc-Methode überschreibt. Dann abfangen ich die WM_PASTE Nachricht (0x0302), kein Glück. Ich kann es nie fangen.
Hier ist der Code, den ich verwenden:
protected override void WndProc(ref Message m) { if (m.Msg == WM_PASTE) { MessageBox.Show("Paste"); } base.WndProc(ref m); }
Jede Idee?
Lösung
Sie könnten ScintillaNet eingebaute in CTRL + V-Handler mit entfernen
scintilla.Commands.RemoveBinding(Keys.V, Keys.Control, ScintillaNet.BindableCommand.Paste);
Und fügen Sie Ihre eigenen STRG + V-Handler zu tun, um ein (Menüpunkt?):
ScintillaNet.Selection.Text = your_processed_clipboard_data;
Das an der aktuellen Cursorposition einfügen würde, oder die aktuelle Auswahl ersetzen.