MENU

C# テキストボックスを入力不可にする

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);
    }
}

このコードの主なポイントは以下の通りです:

  1. ReadOnly = true を設定することで、テキストボックスが読み取り専用になります。
  2. ユーザーはテキストを選択してコピーすることはできますが、編集はできません。
  3. テキストボックスの外観は通常のテキストボックスとほぼ同じです。

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);
}

この方法の特徴は以下の通りです:

  1. Enabled = false を設定することで、テキストボックス全体が無効化されます。
  2. テキストの選択やコピーも含めて、一切の操作ができなくなります。
  3. テキストボックスの外観が変わり、通常はグレーアウトします。

ReadOnly と Enabled の使い分け

  • ReadOnly: テキストの表示と選択・コピーが必要で、編集のみを禁止したい場合に使用します。
  • Enabled: テキストボックスとの一切のインタラクションを禁止したい場合に使用します。

テキストボックスの外観をカスタマイズする

読み取り専用や無効化されたテキストボックスの外観をカスタマイズすることもできます。例えば:

readOnlyTextBox.BackColor = System.Drawing.SystemColors.Control;
readOnlyTextBox.BorderStyle = BorderStyle.None;

これにより、読み取り専用のテキストボックスをラベルのように見せることができます。

まとめ

C#でテキストボックスを入力不可にする主な方法は以下の2つです:

  1. ReadOnlyプロパティをtrueに設定する
  2. Enabledプロパティをfalseに設定する

これらの方法を適切に使い分けることで、アプリケーションの要件に合わせてユーザーインターフェースを設計することができます。読み取り専用の情報表示、計算結果の表示、または編集不可のフォームフィールドなど、様々な場面で活用できるでしょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次