RichTextBox.SelectionAlignmentプロパティを設定することで「中央揃え」「左揃え」「右揃え」が可能です。同期されたRichTextBoxでこの処理をやってみましょう。

アンドゥバッファは自前で用意するのでUndoで元に戻せるように以前の状態を記憶する必要があります。選択されている部分がふくまれる行の行頭を取得する必要があります。

各行の先頭にタブ文字をいれる方法 内容が同期されたRichTextBox(その4)

ここで作成した GetSelectedLineHeadsメソッドが使えそうです。選択されている部分がふくまれる行をまるまる選択状態にするために GetSelectedLineTail メソッドもつかって行全体を選択状態にできるようにしておきます。

そのあとUndoBufに必要な情報を格納して「中央揃え」「左揃え」「右揃え」をおこないます。

まず現在の状態と変更後の状態を保存するクラスです。

HorizontalAlignmentを引数にしたメソッドです。

変更前と変更後で違いがない場合はなにもしないようにしています。

UndoできるようにUndobufにデータを格納できるようにします。UndoのときはNewTextAlignとOldTextAlignが逆になるのでそのような処理ができるようにしています。

あとは

これで同期されたRichTextBoxで「中央揃え」「左揃え」「右揃え」ができるようになります。