リッチテキストボックスで文字列が選択されている時、RichTextBox.SelectionColorプロパティの値を変更すると、選択されている文字列の色を変更することができます。また、RichTextBox.SelectionBackColorプロパティで背景色を変更できます。さらにRichTextBox.SelectionFontプロパティでフォントを変更できます。
文字列を選択する方法についてはここでは説明しませんので、「TextBox(またはRichTextBox)で選択されている文字列の取得と設定」をご覧ください。
下の例では、リッチテキストボックス(RichTextBox1)の3文字目から5文字の色を赤、フォントを斜体に変更しています。
'Imports System.Drawing '現在の選択状態を覚えておく Dim currentSelectionStart As Integer = RichTextBox1.SelectionStart Dim currentSelectionLength As Integer = RichTextBox1.SelectionLength 'カレットを3文字目に移動 RichTextBox1.Select(2, 0) '斜体にするフォントを覚えておく '文字列が選択されていると、SelectionFontがNULLを返す可能性がある Dim baseFont As Font = RichTextBox1.SelectionFont '5文字選択する RichTextBox1.SelectionLength = 5 '色を赤にする RichTextBox1.SelectionColor = Color.Red '文字を斜体にする 'ItalicをFontStyleに追加したFontを作成する Dim fnt As New Font(baseFont.FontFamily, _ baseFont.Size, _ baseFont.Style Or FontStyle.Italic) 'Fontを変更する RichTextBox1.SelectionFont = fnt baseFont.Dispose() fnt.Dispose() '選択状態を元に戻す RichTextBox1.Select(currentSelectionStart, currentSelectionLength)
//using System.Drawing; //現在の選択状態を覚えておく int currentSelectionStart = RichTextBox1.SelectionStart; int currentSelectionLength = RichTextBox1.SelectionLength; //カレットを3文字目に移動 RichTextBox1.Select(2, 0); //斜体にするフォントを覚えておく //文字列が選択されていると、SelectionFontがNULLを返す可能性がある Font baseFont = RichTextBox1.SelectionFont; //5文字選択する RichTextBox1.SelectionLength = 5; //色を赤にする RichTextBox1.SelectionColor = Color.Red; //文字を斜体にする //ItalicをFontStyleに追加したFontを作成する Font fnt = new Font(baseFont.FontFamily, baseFont.Size, baseFont.Style | FontStyle.Italic); //Fontを変更する RichTextBox1.SelectionFont = fnt; baseFont.Dispose(); fnt.Dispose(); //選択状態を元に戻す RichTextBox1.Select(currentSelectionStart, currentSelectionLength);
次の例では、指定された文字列(DOBON)の背景色をすべて赤くしています。
'Imports System.Drawing '色を変える文字列 Dim searchWord As String = "DOBON" '現在の選択状態を覚えておく Dim currentSelectionStart As Integer = RichTextBox1.SelectionStart Dim currentSelectionLength As Integer = RichTextBox1.SelectionLength Dim pos As Integer = 0 While True '文字列を検索して、選択状態にする pos = RichTextBox1.Find(searchWord, pos, RichTextBoxFinds.None) If pos < 0 Then Exit While End If '背景色を赤にする RichTextBox1.SelectionBackColor = Color.Red pos += 1 End While
//using System.Drawing; //色を変える文字列 string searchWord = "DOBON"; //現在の選択状態を覚えておく int currentSelectionStart = RichTextBox1.SelectionStart; int currentSelectionLength = RichTextBox1.SelectionLength; int pos = 0; for (; ; ) { //文字列を検索して、選択状態にする pos = RichTextBox1.Find(searchWord, pos, RichTextBoxFinds.None); if (pos < 0) { break; } //背景色を赤にする RichTextBox1.SelectionBackColor = Color.Red; pos++; } //選択状態を元に戻す RichTextBox1.Select(currentSelectionStart, currentSelectionLength);
文字列が選択されていない時にSelectionColorやSelectionFontプロパティの値を変更すると、現在のカレット位置とそれ以降に入力される文字列にその変更が適用されます。
次の例では、リッチテキストボックスの現在の位置に挿入する文字列の色を赤に、文字を太字にしています。
'Imports System.Drawing '選択状態を解除しておく RichTextBox1.SelectionLength = 0 '赤にする RichTextBox1.SelectionColor = Color.Red 'BoidをFontStyleに追加したFontを作成する Dim baseFont As Font = RichTextBox1.SelectionFont Dim fnt As New Font(baseFont.FontFamily, _ baseFont.Size, _ baseFont.Style Or FontStyle.Bold) 'Fontを変更する RichTextBox1.SelectionFont = fnt '文字列を挿入する RichTextBox1.SelectedText = "文字列を挿入" baseFont.Dispose() fnt.Dispose()
//using System.Drawing; //選択状態を解除しておく RichTextBox1.SelectionLength = 0; //赤にする RichTextBox1.SelectionColor = Color.Red; //BoidをFontStyleに追加したFontを作成する Font baseFont = RichTextBox1.SelectionFont; Font fnt = new Font(baseFont.FontFamily, baseFont.Size, baseFont.Style | FontStyle.Bold); //Fontを変更する RichTextBox1.SelectionFont = fnt; //文字列を挿入する RichTextBox1.SelectedText = "文字列を挿入"; baseFont.Dispose(); fnt.Dispose();