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