[C#][Windows Formsアプリ][RichTextBox] ReadOnlyプロパティで読み取り専用にする

スポンサーリンク

はじめに

RichTextBoxでユーザーによる入力や編集を禁止したいときに使うのがReadOnlyプロパティ です。
内容を表示するだけの「閲覧モード」を実装したい場合に便利です。

 

ReadOnlyプロパティとは?

ReadOnly プロパティは、RichTextBoxのテキストをユーザーが編集できるかどうかを指定します。

  • true … 読み取り専用。入力や削除ができない
  • false(既定値) … 通常の編集が可能
例:
richTextBox1.ReadOnly = true;
→ テキストを選択・コピーはできるが、入力や削除はできなくなる。

 

基本の使い方

コードで設定する

// 読み取り専用に設定
richTextBox1.ReadOnly = true;

// 再び編集を許可
richTextBox1.ReadOnly = false;

デザイナーで設定する

  1. RichTextBoxを選択
  2. プロパティウィンドウの ReadOnlyTrue に変更

これだけでユーザーによる入力を無効化できます。

 

実用例:編集禁止の説明欄を作る

using System;
using System.Windows.Forms;

namespace RichTextBoxReadOnlySample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            richTextBox1.Text = "このテキストは編集できません。";
            richTextBox1.ReadOnly = true; // 編集禁止
        }
    }
}

この例では、フォームを開いたときから編集ができない状態になります。
スクロールやコピーは可能なので、利用規約やヘルプ文章の表示にも適しています。

 

TextBoxとの違い

  • 動作はTextBoxとほぼ同じだが、RichTextBoxは装飾情報を保持
  • Enabled = false にするとテキストがグレーアウトして操作不可だが、
    ReadOnly = true は見た目が変わらずコピーもできる
  • 「見せるだけの文書」には ReadOnly の方が自然
💡 ポイント:
「操作できない」=Enabled = false
「編集できないが選択可能」=ReadOnly = true
と覚えておくと混乱しません。

 

注意点

  • ReadOnly = true の状態でも、プログラムから TextRtf の変更は可能
  • 一時的に編集禁止にしたい場合はイベント内で切り替えられる
  • ユーザーに「編集不可」であることを伝えるために背景色を変えると親切
// 編集禁止状態を強調表示
richTextBox1.ReadOnly = true;
richTextBox1.BackColor = Color.LemonChiffon;

 

まとめ

  • ReadOnly プロパティでユーザーの編集可否を制御できる
  • 内容のコピーは許可されるため、閲覧用コンテンツに適している
  • Enabled とは動作が異なる点に注意
Please follow and like us:

コメント

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