Ответ 1
Это возможно, вы можете перехватить низкоуровневое сообщение Windows, которое получает встроенный элемент управления TextBox
, который сообщает ему вставить из буфера обмена. Сообщение WM_PASTE
. Создается как при нажатии Ctrl + V с помощью клавиатуры, так и в контекстном меню "Вставить". Вы поймаете его, переопределив метод управления WndProc()
, выполнив пасту по желанию и не передайте ее базовому классу.
Добавьте новый класс в свой проект и скопируйте/вставьте код, показанный ниже. Компиляция. Отбросьте новый элемент управления сверху панели инструментов на свою форму, заменив существующий.
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);
}
}