はじめに
TextBox の 編集可否を切り替えるプロパティ です。true にすると、ユーザーは入力や変更ができなくなります。ただし、文字列は表示される ので、コピー操作は可能です。ユーザーに「見せたいけれど編集はさせたくない」ケースで便利です。
基本の使い方
デザイナーで設定
フォーム上の TextBox をクリックし、プロパティウィンドウで ReadOnly を True に設定。
textBox1.ReadOnly = true;
Enabledとの違い
初心者が混乱しやすいのが Enabled プロパティとの違いです。
| プロパティ | ユーザー入力 | コピー | 外観 |
| Readonly = true | 不可 | 可能 | 通常の見た目 |
| Enabled = true | 不可 | 不可 | グレーアウト表示 |
つまり、
-
ReadOnly → 「内容は見せたいけど、書き換えさせない」
-
Enabled = false → 「内容自体を操作対象外にしたい」
という使い分けになります。
利用シーン
- 計算結果や固定情報を表示する欄
例えば「合計金額」をユーザーに見せたいが編集はさせないとき。 - ログや履歴表示欄
複数行の TextBox に処理結果を出力し、ユーザーはコピーだけできるようにしたいとき。 - 一時的に入力を制御
ボタンを押すまでは編集不可にしておく、といった制御。
サンプルコード
using System;
using System.Windows.Forms;
namespace TextBoxReadOnlySample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 初期状態は読み取り専用にする
textBox1.ReadOnly = true;
textBox1.Text = "これは編集できませんが、コピーはできます。";
}
private void button1_Click(object sender, EventArgs e)
{
// ボタンを押すと編集可能に切り替え
textBox1.ReadOnly = false;
}
private void button2_Click(object sender, EventArgs e)
{
// 再び編集不可に切り替え
textBox1.ReadOnly = true;
}
}
}
まとめ
- ReadOnly = true にすると 編集不可だが表示・コピーは可能。
- Enabled = false との違いを理解して使い分けることが大事。
- 固定情報の表示やログの出力欄などでよく使われる。
これを押さえておくと、入力フォームやビューア系のアプリで「適切な制御」ができるようになります
Please follow and like us:

コメント