テキストエディタで複数行を選択しているときにTabキーを押すと各行の先頭にTab文字が入ります。ところがRichTextBoxはそのようになっていません。そこで複数行選択されているときは各行の先頭にタブ文字が入るように改良してみます。

まず行頭がどこにあるか知る必要があります。

行頭は文書の先頭と改行の次の文字と考えることができます。そこで改行の位置をまとめて取得してしまいましょう。

これを使えばできそうです。

これでタブ文字を追加する場所はわかります。あとは追加するだけ・・・

それからUndoのことも考えないといけません。

テストしてみるとちゃんと動きます。