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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top