はじめに
TextBoxに入力があるたびにリアルタイムで処理を行いたいときに便利なのが
TextChangedイベント です。
ユーザーの入力、プログラムからの変更のいずれでも発生するため、入力検知の基本となります。
TextChangedイベントとは?
TextChanged イベントは、TextBoxの Text プロパティが変更されたときに発生します。
文字の追加・削除だけでなく、プログラムから textBox1.Text = "..." と代入した場合にも発生します。
例:ユーザーが「Hello」と入力 → 1文字ごとに
TextChanged が発生する
基本の使い方
デザイナーで設定する方法
- TextBoxを選択する
- プロパティウィンドウの「イベント」ボタン(⚡アイコン)をクリック
TextChangedをダブルクリックしてイベントハンドラを生成
コードで設定する方法
textBox1.TextChanged += new EventHandler(textBox1_TextChanged);
private void textBox1_TextChanged(object sender, EventArgs e)
{
// 入力が変わるたびに呼ばれる
label1.Text = textBox1.Text.Length + " 文字入力中";
}
実用例:文字数カウンター
using System;
using System.Windows.Forms;
namespace TextChangedSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
textBox1.TextChanged += textBox1_TextChanged;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
labelCount.Text = "現在の文字数: " + textBox1.Text.Length;
}
}
}
この例では、入力するたびに文字数がリアルタイムで更新されます。
注意点
TextChangedは入力だけでなくプログラムからのText設定でも発生する- 短い入力ごとに頻繁に呼ばれるため、重い処理を直接書くのは非推奨
- Enterキーや確定操作を検知したい場合は
KeyDownやValidatingなどのイベントと使い分ける
まとめ
TextChangedはTextBoxの内容が変更されるたびに発生するイベント- 入力検知やリアルタイムのバリデーションに最適
- 処理が重くならないように注意して利用する
フォームアプリで「入力に反応する仕組み」を作る際には必ず利用するイベントです。
Please follow and like us:

コメント