[C#][Windows Formsアプリ][RichTextBox] Rtfプロパティで装飾付きテキスト(RTF形式)を扱う

スポンサーリンク

はじめに

RichTextBoxが「リッチテキストエディタ」と呼ばれる理由の一つが、Rtfプロパティ にあります。
文字の装飾情報を含んだRTF(Rich Text Format)文字列を取得・設定できるプロパティです。

 

Rtfプロパティとは?

Rtf プロパティは、RichTextBox内のテキストを「RTF形式」の文字列として取得・設定します。
RTFとは、文字色・フォント・サイズなどの書式情報を含むテキスト形式の文書フォーマットです。

例:
「太字」や「赤文字」などの書式を保持したまま、別の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:

コメント

タイトルとURLをコピーしました