C#でWindowsフォームアプリケーションを開発する際、テキストボックスを表示のみに使用し、ユーザーによる編集を防ぎたい場面がよくあります。例えば、計算結果の表示や、読み取り専用の情報の表示などがこれに該当します。この記事では、C#を使ってテキストボックスを入力不可にする方法を、初心者にも分かりやすく解説します。
目次
ReadOnly プロパティを使用する方法
テキストボックスを入力不可にする最も簡単な方法は、ReadOnly
プロパティを使用することです。このプロパティをtrue
に設定すると、テキストボックスの内容を表示したまま、ユーザーによる編集を防ぐことができます。
以下に、基本的なコード例を示します:
using System;
using System.Windows.Forms;
public partial class Form1 : Form
{
private TextBox readOnlyTextBox;
public Form1()
{
InitializeComponent();
CreateReadOnlyTextBox();
}
private void CreateReadOnlyTextBox()
{
readOnlyTextBox = new TextBox
{
Location = new System.Drawing.Point(10, 10),
Size = new System.Drawing.Size(200, 20),
Text = "この内容は編集できません。",
ReadOnly = true
};
this.Controls.Add(readOnlyTextBox);
}
}
このコードの主なポイントは以下の通りです:
ReadOnly = true
を設定することで、テキストボックスが読み取り専用になります。- ユーザーはテキストを選択してコピーすることはできますが、編集はできません。
- テキストボックスの外観は通常のテキストボックスとほぼ同じです。
Enabled プロパティを使用する方法
もう一つの方法は、Enabled
プロパティをfalse
に設定することです。この方法では、テキストボックス全体が無効化されます。
private void CreateDisabledTextBox()
{
TextBox disabledTextBox = new TextBox
{
Location = new System.Drawing.Point(10, 40),
Size = new System.Drawing.Size(200, 20),
Text = "この内容は編集できません。",
Enabled = false
};
this.Controls.Add(disabledTextBox);
}
この方法の特徴は以下の通りです:
Enabled = false
を設定することで、テキストボックス全体が無効化されます。- テキストの選択やコピーも含めて、一切の操作ができなくなります。
- テキストボックスの外観が変わり、通常はグレーアウトします。
ReadOnly と Enabled の使い分け
ReadOnly
: テキストの表示と選択・コピーが必要で、編集のみを禁止したい場合に使用します。Enabled
: テキストボックスとの一切のインタラクションを禁止したい場合に使用します。
テキストボックスの外観をカスタマイズする
読み取り専用や無効化されたテキストボックスの外観をカスタマイズすることもできます。例えば:
readOnlyTextBox.BackColor = System.Drawing.SystemColors.Control;
readOnlyTextBox.BorderStyle = BorderStyle.None;
これにより、読み取り専用のテキストボックスをラベルのように見せることができます。
まとめ
C#でテキストボックスを入力不可にする主な方法は以下の2つです:
ReadOnly
プロパティをtrue
に設定するEnabled
プロパティをfalse
に設定する
これらの方法を適切に使い分けることで、アプリケーションの要件に合わせてユーザーインターフェースを設計することができます。読み取り専用の情報表示、計算結果の表示、または編集不可のフォームフィールドなど、様々な場面で活用できるでしょう。
コメント