はじめに
RichTextBoxでユーザーによる入力や編集を禁止したいときに使うのがReadOnlyプロパティ です。
内容を表示するだけの「閲覧モード」を実装したい場合に便利です。
ReadOnlyプロパティとは?
ReadOnly プロパティは、RichTextBoxのテキストをユーザーが編集できるかどうかを指定します。
- true … 読み取り専用。入力や削除ができない
- false(既定値) … 通常の編集が可能
例:
→ テキストを選択・コピーはできるが、入力や削除はできなくなる。
richTextBox1.ReadOnly = true;→ テキストを選択・コピーはできるが、入力や削除はできなくなる。
基本の使い方
コードで設定する
// 読み取り専用に設定
richTextBox1.ReadOnly = true;
// 再び編集を許可
richTextBox1.ReadOnly = false;
デザイナーで設定する
- RichTextBoxを選択
- プロパティウィンドウの
ReadOnlyをTrueに変更
これだけでユーザーによる入力を無効化できます。
実用例:編集禁止の説明欄を作る
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の状態でも、プログラムからTextやRtfの変更は可能- 一時的に編集禁止にしたい場合はイベント内で切り替えられる
- ユーザーに「編集不可」であることを伝えるために背景色を変えると親切
// 編集禁止状態を強調表示
richTextBox1.ReadOnly = true;
richTextBox1.BackColor = Color.LemonChiffon;
まとめ
ReadOnlyプロパティでユーザーの編集可否を制御できる- 内容のコピーは許可されるため、閲覧用コンテンツに適している
Enabledとは動作が異なる点に注意
Please follow and like us:

コメント