フォントのスタイル/色を変更するという意味ではなく、特定の色でブロックを選択するという意味で、RTBのテキストの特定の部分を強調表示する必要があります。これは、デバッグモード中にVisualStudioが行を強調表示する方法と似ています。
RTBを使用してこの機能を実現するにはどうすればよいですか、それとも可能ですか?それが不可能な場合は、上記のタスクを実行する別の方法を聞きたいと思います。
フォントのスタイル/色を変更するという意味ではなく、特定の色でブロックを選択するという意味で、RTBのテキストの特定の部分を強調表示する必要があります。これは、デバッグモード中にVisualStudioが行を強調表示する方法と似ています。
RTBを使用してこの機能を実現するにはどうすればよいですか、それとも可能ですか?それが不可能な場合は、上記のタスクを実行する別の方法を聞きたいと思います。
はい、 RichTextBox.SelectionBackColorプロパティを使用してRichTextBox選択のBackColorを設定できます。
int blockStart = 1; //arbitrary numbers to test
int blockLength = 15;
richTextBox1.SelectionStart = blockStart;
richTextBox1.SelectionLength = blockLength;
richTextBox1.SelectionBackColor = Color.Yellow;
あなたはScintillaNETを探していると思います。
一方、RTBで自分でこれを実行する場合は、最初にusingTextBoxBase.LinesプロパティlineNumber
を見つけることで実行できます。それで ...
//Select the line from it's number
startIndex = richTextBox.GetFirstCharIndexFromLine(lineNumber);
richTextBox.Select(startIndex, length);
//Set the selected text fore and background color
richTextBox.SelectionColor = System.Drawing.Color.White;
richTextBox.SelectionBackColor= System.Drawing.Color.Blue;
ここでは、これを実現するためにCustomRichTextBoxを作成しました。
ここでは、シナリオの長いソースコードについて説明します。興味があれば、このユーザーコントロールをあまり気にせずに直接再利用できます
シナリオ
ソースコード:
https://github.com/boobalaninfo/CustomRichTextBoxWithHighligh