2012-11-22 12 views
7

WindowsフォームのRichTextBoxにこのClearUndo()メソッドがあるようです(system.windows.forms.textboxbase.参照)。RichTextBoxコントロールの取り消しスタックからアクションを削除するにはどうすればよいですか?

RichTextBox Controlに似たものが必要です。これは、(ここに記載されているように:Preventing a RichTextBox operation from being added to the control's Undo stack)すべての変更がRichTextBoxの元に戻すスタックに追加されるためです。

私はOnTextChangedイベントをオーバーライドして、これらの変更の一部をUnoスタックから削除したいと思います。どうやってやるの?

ありがとうございました。

答えて

11

次のコードでWPF RichTextBox制御のためのClearUndo()をエミュレートすることができます。

richTextBox.IsUndoEnabled = false; 
richTextBox.IsUndoEnabled = true; 

しかし、あなたはUndoリスト内の任意の特定のアクションを制御することができます方法はありません。

まだ独自のUndo/Redoメカニズムを実装したい場合は、最も重要なテキスト変更ごとにコントロールのテキスト全体を配列に格納するのが最も簡単で最も簡単な方法です。しかし、大文字のテキストをコントロールで編集するつもりがない場合にのみ、私はそれを助言します。

関連する問題