1

私はWinForms RichTextBoxを持っており、デフォルトでは元に戻すはほとんどの場合に機能しますが、テキストを貼り付けると(フォーマットを取り除いたのは単なるプレーンテキストです)、元に戻そうとしても、貼り付けたばかりのテキストは元に戻りません。

解決への助けはありますか?

4

2 に答える 2

2

設計上、TextChangedイベントはUndo状態の作成をトリガーしません。貼り付けるとTextChangedイベントがトリガーされるため、これが発生します。それを回避するには、

TextChangedイベントハンドラーを、イベントを呼び出すイベントにバインドすることをお勧めしますKeyUp。KeyUpイベントは、Undo状態の作成をトリガーします。

于 2010-07-22T23:21:06.680 に答える
0

テキストを明示的に置き換える代わりに、クリップボードを使用できます。そして、これは元に戻すスタックをクリアしません

  var originalClbData = Clipboard.GetDataObject(); 
  Clipboard.SetText(newText);
  txtMailBody.SelectAll();
  txtMailBody.Paste();
  if (originalClbData != null) Clipboard.SetDataObject(originalClbData);
于 2010-09-21T19:12:41.517 に答える