[C#] TextBoxコントロールの基本的な使い方とプロパティ

C#のTextBoxコントロールは、ユーザーからテキスト入力を受け取るためのUI要素です。

基本的な使い方としては、Windows FormsアプリケーションでフォームにTextBoxを配置し、プロパティを設定して動作をカスタマイズします。

主なプロパティには、Text(現在のテキスト内容)、MaxLength(入力可能な最大文字数)、ReadOnly(読み取り専用にするかどうか)、Multiline(複数行入力を許可するかどうか)などがあります。

イベントとしては、TextChanged(テキストが変更されたときに発生)やKeyPress(キーが押されたときに発生)などがあり、これらを利用して入力内容の検証や動的なUI更新を行います。

この記事でわかること
  • TextBoxコントロールの基本的な使い方
  • 各種プロパティの設定方法
  • イベントを活用したインタラクション
  • カスタマイズによる見た目の変更
  • 応用例を通じた実践的な活用方法

目次から探す

TextBoxコントロールの概要

TextBoxとは

TextBoxは、ユーザーがテキストを入力できるコントロールです。

Windowsフォームアプリケーションにおいて、ユーザーからの情報を受け取るための基本的な手段として広く使用されています。

シングルラインまたはマルチラインの入力が可能で、さまざまなプロパティを設定することで、見た目や動作をカスタマイズできます。

TextBoxの用途

TextBoxは、以下のような用途で使用されます。

スクロールできます
用途説明
ユーザー入力ユーザーからのテキストデータの受け取り
検索機能検索条件を入力するためのフィールド
パスワード入力セキュリティのためにパスワードを隠す
コメント入力ユーザーからのフィードバックやコメントを受け取る

TextBoxの基本的な配置方法

TextBoxをフォームに配置するには、Visual Studioのデザイナーを使用するのが一般的です。

以下の手順で配置できます。

  1. ツールボックスからTextBoxコントロールを選択します。
  2. フォーム上にドラッグ&ドロップします。
  3. プロパティウィンドウで、必要なプロパティ(例:Name、Text、Sizeなど)を設定します。

以下は、プログラムコードでTextBoxを配置する例です。

partial class MyForm : Form
{
    private TextBox myTextBox;
    public MyForm()
    {
        InitializeComponent(); // フォームの初期化
        myTextBox = new TextBox(); // TextBoxのインスタンスを作成
        myTextBox.Location = new Point(10, 10); // 位置を設定
        myTextBox.Size = new Size(200, 30); // サイズを設定
        this.Controls.Add(myTextBox); // フォームに追加
    }
}

このコードでは、myTextBoxという名前のTextBoxを作成し、フォームの指定した位置に配置しています。

InitializeComponent();メソッドは、フォームの初期化を行うために必要です。

TextBoxの基本プロパティ

Textプロパティ

Textプロパティは、TextBoxに表示されるテキストを取得または設定するためのプロパティです。

このプロパティを使用することで、ユーザーが入力した内容をプログラム内で利用したり、初期値を設定したりできます。

myTextBox.Text = "初期値"; // TextBoxに初期値を設定
string inputText = myTextBox.Text; // ユーザーが入力したテキストを取得

MaxLengthプロパティ

MaxLengthプロパティは、TextBoxに入力できる最大文字数を指定します。

このプロパティを設定することで、ユーザーが指定した文字数以上の入力を防ぐことができます。

myTextBox.MaxLength = 20; // 最大文字数を20に設定

ReadOnlyプロパティ

ReadOnlyプロパティは、TextBoxが読み取り専用かどうかを指定します。

このプロパティをtrueに設定すると、ユーザーはテキストを編集できなくなりますが、テキストのコピーは可能です。

myTextBox.ReadOnly = true; // TextBoxを読み取り専用に設定

Multilineプロパティ

Multilineプロパティは、TextBoxが複数行のテキストを入力できるかどうかを指定します。

このプロパティをtrueに設定すると、ユーザーは複数行のテキストを入力できるようになります。

myTextBox.Multiline = true; // TextBoxを複数行入力可能に設定
myTextBox.Size = new Size(200, 100); // サイズを調整

PasswordCharプロパティ

PasswordCharプロパティは、TextBoxに入力された文字を特定の文字(通常はアスタリスク)で隠すためのプロパティです。

このプロパティを設定することで、パスワードなどの機密情報を安全に入力させることができます。

myTextBox.PasswordChar = '●'; // 入力された文字を●で隠す

これらのプロパティを適切に設定することで、TextBoxの動作や見た目をカスタマイズし、ユーザーにとって使いやすいインターフェースを提供できます。

TextBoxのイベント

TextChangedイベント

TextChangedイベントは、TextBoxの内容が変更されたときに発生します。

このイベントを利用することで、ユーザーが入力した内容に応じてリアルタイムで処理を行うことができます。

例えば、入力内容の検証や、他のコントロールの状態を変更する際に役立ちます。

myTextBox.TextChanged += (sender, e) =>
{
    // テキストが変更されたときの処理
    Console.WriteLine("入力内容が変更されました: " + myTextBox.Text);
};

KeyPressイベント

KeyPressイベントは、ユーザーがTextBoxにキーを押したときに発生します。

このイベントを使用して、特定のキー入力を処理したり、入力を制限したりすることができます。

例えば、数字のみの入力を許可する場合に利用できます。

myTextBox.KeyPress += (sender, e) =>
{
    // 数字以外の入力を無効にする
    if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back)
    {
        e.Handled = true; // 入力を無効にする
    }
};

KeyDownイベント

KeyDownイベントは、ユーザーがキーを押したときに発生し、キーが押されている間に何度も発生します。

このイベントは、特定のキーが押されたときに特別な処理を行いたい場合に使用されます。

例えば、Enterキーが押されたときにフォームを送信する処理などです。

myTextBox.KeyDown += (sender, e) =>
{
    // Enterキーが押されたときの処理
    if (e.KeyCode == Keys.Enter)
    {
        Console.WriteLine("Enterキーが押されました。");
        e.SuppressKeyPress = true; // Enterキーのデフォルト動作を抑制
    }
};

KeyUpイベント

KeyUpイベントは、ユーザーがキーを離したときに発生します。

このイベントを使用して、キーが離された後の処理を行うことができます。

例えば、特定のキーが離されたときにアクションを実行する場合に利用されます。

myTextBox.KeyUp += (sender, e) =>
{
    // 特定のキーが離されたときの処理
    if (e.KeyCode == Keys.Escape)
    {
        Console.WriteLine("Escapeキーが離されました。");
    }
};

これらのイベントを活用することで、TextBoxの動作をよりインタラクティブにし、ユーザーの入力に応じた柔軟な処理を実現できます。

TextBoxのカスタマイズ

フォントと色の設定

TextBoxのフォントや色を設定することで、アプリケーションのデザインに合わせた見た目を実現できます。

フォントの種類やサイズ、テキストの色、背景色を変更することが可能です。

以下は、フォントと色を設定する例です。

myTextBox.Font = new Font("メイリオ", 12, FontStyle.Regular); // フォントを設定
myTextBox.ForeColor = Color.Blue; // テキストの色を青に設定
myTextBox.BackColor = Color.LightYellow; // 背景色を薄い黄色に設定

サイズと位置の調整

TextBoxのサイズや位置を調整することで、ユーザーインターフェースのレイアウトを整えることができます。

SizeプロパティやLocationプロパティを使用して、TextBoxの大きさや配置を変更できます。

以下は、サイズと位置を調整する例です。

myTextBox.Size = new Size(250, 40); // サイズを250x40に設定
myTextBox.Location = new Point(20, 50); // 位置を(20, 50)に設定

境界線のスタイル変更

TextBoxの境界線のスタイルを変更することで、より魅力的なデザインを実現できます。

デフォルトでは、TextBoxは標準の境界線を持っていますが、BorderStyleプロパティを使用して、境界線のスタイルを変更できます。

以下は、境界線のスタイルを変更する例です。

myTextBox.BorderStyle = BorderStyle.FixedSingle; // 境界線を単一の固定スタイルに設定

これらのカスタマイズを行うことで、TextBoxの見た目や使い勝手を向上させ、ユーザーにとってより快適な操作環境を提供できます。

TextBoxの応用例

入力内容のリアルタイム検証

TextBoxを使用して、ユーザーが入力した内容をリアルタイムで検証することができます。

例えば、メールアドレスの形式をチェックする場合、TextChangedイベントを利用して、入力内容が正しいかどうかを確認し、エラーメッセージを表示することができます。

myTextBox.TextChanged += (sender, e) =>
{
    string inputText = myTextBox.Text;
    if (!IsValidEmail(inputText)) // メールアドレスの形式を検証
    {
        Console.WriteLine("無効なメールアドレスです。");
    }
};
private bool IsValidEmail(string email)
{
    // 簡易的なメールアドレスの検証ロジック
    return email.Contains("@") && email.Contains(".");
}

自動補完機能の実装

TextBoxに自動補完機能を実装することで、ユーザーが入力を始めた際に候補を表示し、選択できるようにすることができます。

これにより、入力の手間を減らし、ユーザー体験を向上させることができます。

以下は、簡単な自動補完機能の実装例です。

private List<string> suggestions = new List<string> { "apple", "banana", "cherry", "date" };
myTextBox.TextChanged += (sender, e) =>
{
    string inputText = myTextBox.Text;
    var filteredSuggestions = suggestions.Where(s => s.StartsWith(inputText)).ToList();
    
    // 候補を表示する処理(例:ListBoxを使用)
    ShowSuggestions(filteredSuggestions);
};
private void ShowSuggestions(List<string> suggestions)
{
    // 候補を表示するための処理を実装
}

複数行入力の活用

TextBoxのMultilineプロパティを利用して、複数行のテキストを入力できるようにすることで、ユーザーからの詳細な情報を受け取ることができます。

例えば、フィードバックやコメントを入力するためのTextBoxを作成することができます。

myTextBox.Multiline = true; // 複数行入力を有効にする
myTextBox.Size = new Size(300, 100); // サイズを調整
myTextBox.ScrollBars = ScrollBars.Vertical; // 縦スクロールバーを表示

これらの応用例を通じて、TextBoxの機能を活用し、ユーザーインターフェースをよりインタラクティブで使いやすくすることができます。

よくある質問

TextBoxのテキストをクリアするにはどうすればよいですか?

TextBoxのテキストをクリアするには、Textプロパティに空の文字列を設定します。

以下のように記述します。

例:myTextBox.Text = "";

TextBoxで特定の文字入力を制限するには?

特定の文字入力を制限するには、KeyPressイベントを利用して、入力された文字を検証し、無効な文字が入力された場合はその入力を無効にします。

例えば、数字のみを許可する場合は、以下のように記述します。

  • if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back) { e.Handled = true; }

TextBoxの入力履歴を保存する方法はありますか?

TextBoxの入力履歴を保存するには、ユーザーが入力した内容をリストや配列に保存し、必要に応じて表示することができます。

例えば、TextChangedイベントで履歴を管理し、履歴を表示するためのドロップダウンリストを作成することが考えられます。

具体的な実装は、アプリケーションの要件に応じて異なります。

まとめ

この記事では、C#のWindowsフォームにおけるTextBoxコントロールの基本的な使い方やプロパティ、イベント、カスタマイズ方法、応用例について詳しく解説しました。

TextBoxは、ユーザーからの入力を受け取るための重要な要素であり、さまざまな機能を活用することで、よりインタラクティブで使いやすいアプリケーションを作成することが可能です。

ぜひ、この記事で学んだ内容を実際のプロジェクトに活かし、TextBoxの機能を最大限に引き出してみてください。

当サイトはリンクフリーです。出典元を明記していただければ、ご自由に引用していただいて構いません。

関連カテゴリーから探す

  • URLをコピーしました!
目次から探す