今回はRichTextEditorの編集履歴をとります。

UndoしてRedoして、こんなことを繰り返して自分がどこにいるのかわからなくなった・・・なんて経験はないでしょうか? そこで編集履歴をとることで自分がどこにいるのか、Undoバッファのなかで迷子にならないようにするためのアプリを作成しました。

使用するのは
s

アンドゥバッファに関する情報を表示する 内容が同期されたRichTextBox(その22)

これでつかったSyncRichTextBoxクラスです。

まずUndoバッファとRedoバッファが格納されているリストを取得します。このときリスト内のデータが改ざんされないようにコピーを取得するようにします。

UndoバッファとRedoバッファをそれぞれ取得することができたら、これをListViewに表示します。

見た目はこんな感じ。

メニューがクリックされたら

みてわかるように削除、追加された文字列が存在しない場合は「-」を表示させています。そしてリストの項目がクリックされたら削除された文字列と追加された文字列を表示させることができるようにRichEditedInfoクラスのオブジェクトをリストアイテムのTagプロパティにセットしています。

あとはリストの項目がクリックされたら削除された文字列と追加された文字列を表示させ、直前や直後にどのような操作をしたのかユーザーにわかるように示します。

では、さっそく編集履歴がどのように表示されるのかみてみましょう。

「ぷとぐらみんぐは」とありますが、「ぷとぐらみんぐ」って何でしょうか。入力ミスに気づいてUndoを実行したところであることがわかります。