[C#] RichTextBoxでの書式設定方法
C#のRichTextBoxで書式設定を行うには、主にSelectionFont
、SelectionColor
、SelectionBackColor
プロパティを使用します。
これらのプロパティを利用して、選択したテキストのフォント、文字色、背景色を変更できます。
例えば、SelectionFont
を使ってフォントスタイルを太字や斜体に設定したり、SelectionColor
で文字の色を赤に変更することが可能です。
また、AppendTextメソッド
を使ってテキストを追加し、その後に書式を設定することもできます。
これにより、ユーザーが入力したテキストやプログラムで追加したテキストに対して、動的に書式を適用することができます。
テキストの書式設定
C#のRichTextBoxコントロールを使用すると、テキストの書式設定が簡単に行えます。
ここでは、主にフォント、文字色、背景色の変更方法について解説します。
SelectionFontプロパティの使用
SelectionFontプロパティを使用することで、選択したテキストのフォントスタイルやサイズを変更できます。
フォントスタイルの変更
以下のサンプルコードでは、選択したテキストのフォントスタイルを太字に変更します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void ChangeFontStyle()
{
// 選択したテキストのフォントを太字に設定
richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Bold);
}
}
選択したテキストが太字に変更されます。
フォントサイズの変更
次のサンプルコードでは、選択したテキストのフォントサイズを16ポイントに変更します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void ChangeFontSize()
{
// 選択したテキストのフォントサイズを16ポイントに設定
richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont.FontFamily, 16);
}
}
選択したテキストのフォントサイズが16ポイントに変更されます。
SelectionColorプロパティの使用
SelectionColorプロパティを使用すると、選択したテキストの文字色を変更できます。
文字色の変更
以下のサンプルコードでは、選択したテキストの文字色を赤に変更します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void ChangeTextColor()
{
// 選択したテキストの文字色を赤に設定
richTextBox1.SelectionColor = Color.Red;
}
}
選択したテキストの文字色が赤に変更されます。
SelectionBackColorプロパティの使用
SelectionBackColorプロパティを使用することで、選択したテキストの背景色を変更できます。
背景色の変更
以下のサンプルコードでは、選択したテキストの背景色を黄色に変更します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void ChangeBackgroundColor()
{
// 選択したテキストの背景色を黄色に設定
richTextBox1.SelectionBackColor = Color.Yellow;
}
}
選択したテキストの背景色が黄色に変更されます。
テキストの操作
RichTextBoxコントロールでは、テキストの選択、挿入、削除などの操作が簡単に行えます。
ここでは、これらの基本的な操作方法について解説します。
テキストの選択と取得
RichTextBoxでは、ユーザーが選択したテキストを取得することができます。
以下のサンプルコードでは、選択したテキストを取得し、MessageBoxで表示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void ShowSelectedText()
{
// 選択したテキストを取得
string selectedText = richTextBox1.SelectedText;
// 選択したテキストを表示
MessageBox.Show(selectedText);
}
}
選択したテキストがポップアップで表示されます。
テキストの挿入と削除
RichTextBoxにテキストを挿入したり、削除したりすることも可能です。
以下のサンプルコードでは、指定した位置にテキストを挿入し、選択したテキストを削除します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void InsertAndDeleteText()
{
// 位置0にテキストを挿入
richTextBox1.Text = "挿入したいテキスト" + richTextBox1.Text;
// 選択したテキストを削除
richTextBox1.SelectedText = string.Empty;
}
}
テキストの先頭に「挿入したいテキスト」が追加され、選択したテキストが削除されます。
AppendTextメソッドの活用
AppendTextメソッド
を使用すると、RichTextBoxの末尾にテキストを追加することができます。
以下のサンプルコードでは、ボタンをクリックすることでテキストを追加します。
using System.Windows.Forms;
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
richTextBox1.Text = "初期テキスト";
AppendTextExample();
}
private void AppendTextExample()
{
// RichTextBoxの末尾にテキストを追加
richTextBox1.AppendText("追加したいテキスト\n");
}
}

RichTextBoxの末尾に「追加したいテキスト」が追加されます。
応用例
RichTextBoxコントロールを使用することで、さまざまな応用が可能です。
ここでは、リッチテキストの保存と読み込み、ユーザーインターフェースとの連携、書式設定のカスタムメニューの作成について解説します。
リッチテキストの保存と読み込み
RichTextBoxの内容をファイルに保存したり、ファイルから読み込んだりすることができます。
以下のサンプルコードでは、リッチテキストをRTF形式で保存し、読み込む方法を示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void SaveRichText()
{
// RTF形式でリッチテキストを保存
richTextBox1.SaveFile("sample.rtf", RichTextBoxStreamType.RichText);
}
private void LoadRichText()
{
// RTF形式のリッチテキストを読み込み
richTextBox1.LoadFile("sample.rtf", RichTextBoxStreamType.RichText);
}
}
SaveRichTextメソッド
を呼び出すと、リッチテキストが sample.rtf
として保存され、LoadRichTextメソッド
を呼び出すと、そのファイルがRichTextBoxに読み込まれます。
ユーザーインターフェースとの連携
RichTextBoxは、他のコントロールと連携させることで、よりインタラクティブなアプリケーションを作成できます。
以下のサンプルコードでは、ボタンをクリックすることでRichTextBoxにテキストを追加します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void buttonAddText_Click(object sender, EventArgs e)
{
// テキストボックスの内容をRichTextBoxに追加
richTextBox1.AppendText(textBoxInput.Text + "\n");
}
}
テキストボックスに入力した内容がボタンをクリックすることでRichTextBoxに追加されます。
書式設定のカスタムメニューの作成
RichTextBoxの書式設定を簡単に行えるカスタムメニューを作成することも可能です。
以下のサンプルコードでは、フォントスタイルを変更するメニューを作成します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
CreateCustomMenu();
}
private void CreateCustomMenu()
{
// メニューを作成
MenuStrip menuStrip = new MenuStrip();
ToolStripMenuItem formatMenu = new ToolStripMenuItem("書式");
ToolStripMenuItem boldItem = new ToolStripMenuItem("太字");
boldItem.Click += (s, e) => { richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Bold); };
formatMenu.DropDownItems.Add(boldItem);
menuStrip.Items.Add(formatMenu);
this.MainMenuStrip = menuStrip;
this.Controls.Add(menuStrip);
}
}

アプリケーションのメニューに「書式」メニューが追加され、「太字」を選択すると、選択したテキストが太字に変更されます。
まとめ
この記事では、C#のRichTextBoxコントロールを使用したテキストの書式設定や操作方法、さらには応用例について詳しく解説しました。
RichTextBoxを活用することで、ユーザーインターフェースをより魅力的にし、機能的なアプリケーションを作成することが可能です。
ぜひ、これらの知識を活かして、実際のプロジェクトに取り入れてみてください。