Отмена в RichTextBox не отменяет вставленный текст - PullRequest
1 голос
/ 23 июля 2010

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

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

Ответы [ 2 ]

2 голосов
/ 23 июля 2010

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

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

0 голосов
/ 21 сентября 2010

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

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