2010-07-22 4 views
1

У меня есть WinForms RichTextBox, и по умолчанию Undo работает для большинства вещей, но когда я вставляю некоторый текст (я лишил его форматирования, это просто текст) и попробуйте отменить он не отменяет только что вставленный текст.Отменить в RichTextBox не отменить Вложенный текст

Любая помощь в решении?

+0

Я удалил C# из названия, потому что ваш вопрос не имеет ничего общего с C#, и потому, что у вас уже есть C# в тегах. –

ответ

2

По проекту событие TextChanged не вызывает создание состояния отмены. Вставка запускает событие TextChanged, так вот почему это происходит. Чтобы обойти это,

Я бы рекомендовал привязать обработчик события к событию TextChanged, которое вызывает событие KeyUp. Событие KeyUp запускает создание состояния создания Undo.

+2

Как это сделать? В C# – Viion

0

Вместо того, чтобы явно менять текст, вы можете использовать буфер обмена. И это не будет ясно, уничтожьте стек

var originalClbData = Clipboard.GetDataObject(); 
    Clipboard.SetText(newText); 
    txtMailBody.SelectAll(); 
    txtMailBody.Paste(); 
    if (originalClbData != null) Clipboard.SetDataObject(originalClbData);