To możliwe, można przechwycić wiadomość niskiego poziomu systemu Windows, że rodzimy TextBox
kontrola dostaje który każe mu wkleić ze schowka. Komunikat WM_PASTE
. Generowane zarówno po naciśnięciu Ctrl + V na klawiaturze, jak i przy użyciu polecenia Wklej w menu kontekstowym. Łapiesz to przez przesłonięcie metody kontrolnej WndProc()
, wykonanie pasty zgodnie z życzeniem i , a nie przekazanie jej do klasy bazowej.
Dodaj nową klasę do swojego projektu i skopiuj/wklej poniższy kod. Skompilować. Upuść nową kontrolę z góry przybornika na formularz, zastępując istniejący.
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);
}
}
sprawdzenie tego: http://stackoverflow.com/questions/3446233/hook-on-default-paste-event-of-winforms-textbox-control –