Questo è possibile, è possibile intercettare il messaggio di Windows a basso livello che il nativo TextBox
di controllo ottiene che dice di incollare dagli Appunti. Il messaggio WM_PASTE
. Generato sia quando si preme Ctrl + V con la tastiera o si utilizza il comando Incolla del menu di scelta rapida. Puoi prenderlo ignorando il metodo WndProc()
del controllo, eseguendo la copia come desiderato e non passalo alla classe base.
Aggiungi una nuova classe al tuo progetto e copia/incolla il codice mostrato di seguito. Compilare. Rilasciare il nuovo controllo dalla parte superiore della casella degli strumenti sul modulo, sostituendo quello esistente.
using System;
using System.Windows.Forms;
class MyTextBox : TextBox {
protected override void WndProc(ref Message m) {
// Trap WM_PASTE:
if (m.Msg == 0x302 && Clipboard.ContainsText()) {
this.SelectedText = Clipboard.GetText().Replace('\n', ' ');
return;
}
base.WndProc(ref m);
}
}
fonte
2011-10-21 17:01:30
controllare questo: http://stackoverflow.com/questions/3446233/hook-on-default-paste-event-of-winforms-textbox-control –