プログラミング言語のソース コードを解析するアプリケーションがあります。System.Windows.Forms.RichTextBox
コードエディタとして使用しています。次のアルゴリズムで言語のキーワードを強調表示します。
- テキストが変更されるたびに、最後の単語の先頭に戻り、この部分文字列の単語を呼び出します。
- キーワードに単語が含まれている場合は、単語の色を青に
設定します。そうでない場合は、単語の色を黒に設定します
RichTextBox.SelectionStarts
、RichTextBox.Select(int, int)
およびを使用してRichTextBox.SelectionColor
います。それはうまく機能しています。
ただし、Enter キーを押すと、カーソルが行頭に戻ります。ソースコードの編集者として、私はそれが懇願する最後の行に従うことを望んでいます。前の行のパディング空白文字を stringstr
に入れ、次にrichTextBox.Text = richTextBox.Text.Insert(richTextBox.SelectionStarts, str)
. そうすると、すべてのテキストの強調表示が壊れ、すべてのテキストが青色になります。
ハイライトを壊さずに行のパディングスペースを追加する方法を誰か提案できますか?