はじめに
RichTextBoxが「リッチテキストエディタ」と呼ばれる理由の一つが、Rtfプロパティ にあります。
文字の装飾情報を含んだRTF(Rich Text Format)文字列を取得・設定できるプロパティです。
Rtfプロパティとは?
Rtf プロパティは、RichTextBox内のテキストを「RTF形式」の文字列として取得・設定します。
RTFとは、文字色・フォント・サイズなどの書式情報を含むテキスト形式の文書フォーマットです。
例:
「太字」や「赤文字」などの書式を保持したまま、別のRichTextBoxやファイルにコピーすることができます。
「太字」や「赤文字」などの書式を保持したまま、別のRichTextBoxやファイルにコピーすることができます。
Textプロパティとの違い
| 項目 | Textプロパティ | Rtfプロパティ |
|---|---|---|
| 扱う内容 | 文字列のみ(装飾なし) | 書式付き文字列(RTF形式) |
| 用途 | テキスト処理・検索など | 装飾の保存・読み込み |
| 例 | "こんにちは" |
{\rtf1\ansi ... こんにちは} |
見た目は同じでも、内部では全く異なるデータ形式を扱っています。
基本の使い方
RTFを取得する
string rtfData = richTextBox1.Rtf;
Console.WriteLine(rtfData);
RTFを設定する
richTextBox1.Rtf = @"{\rtf1\ansi\deff0 {\fonttbl{\f0 MS UI Gothic;}}
\f0\fs24 これは\cf1 太字の\cf0 テキストです。}";
上記のように、Rtf にはRTF構文(中括弧やバックスラッシュを含む文字列)を直接指定できます。
実用例:リッチテキストをコピー&ペースト
using System;
using System.Windows.Forms;
namespace RichTextBoxRtfSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 書式付きテキストを設定
richTextBox1.SelectionFont = new System.Drawing.Font("Meiryo", 12, System.Drawing.FontStyle.Bold);
richTextBox1.SelectionColor = System.Drawing.Color.Red;
richTextBox1.AppendText("これは赤い太字です。\n");
// RTF文字列を取得して別のRichTextBoxへ
string rtfData = richTextBox1.Rtf;
richTextBox2.Rtf = rtfData;
}
}
}
この例では、1つ目のRichTextBoxに装飾を付けたテキストを入力し、
そのまま2つ目のRichTextBoxへ「書式ごとコピー」しています。
注意点
- RTF構文を誤って書くと例外が発生する(RTF形式の整合性が必要)
TextにRTF文字列を代入しても装飾は反映されない- ファイル入出力には
LoadFile()/SaveFile()の方が安全 - RTFデータはサイズが大きくなりやすいため、ログ用途では不向き
応用:Textとの連携
// プレーンテキストを表示
richTextBox1.Text = "こんにちは";
// RTF形式を取得(内部的にはRTF構文になる)
string rtf = richTextBox1.Rtf;
// 書式付きテキストを他のRichTextBoxへ反映
richTextBox2.Rtf = rtf;
このように、プレーンテキストとリッチテキストを柔軟に相互変換できます。
まとめ
RtfプロパティはRichTextBoxの装飾情報を含む文字列を扱うTextは内容のみ、Rtfは書式付き情報- 装飾付きの文書を保存・再利用したいときに必須のプロパティ
Please follow and like us:

コメント