[C#] MaskedTextBoxで数字のみを入力する方法
C#のMaskedTextBox
で数字のみを入力する方法は、Mask
プロパティを使用して入力フォーマットを指定することです。
Mask
プロパティに"00000"
のように数字の0を使用すると、その桁数分だけ数字のみの入力が可能になります。
例えば、5桁の数字のみを許可する場合は"00000"
と設定します。
これにより、ユーザーは指定された桁数の数字のみを入力でき、他の文字は入力できなくなります。
また、ValidatingType
プロパティを使用して、入力されたデータが特定の数値型に変換可能かどうかを検証することもできます。
数字のみを入力するための設定
Maskプロパティの設定方法
MaskedTextBoxを使用する際、数字のみを入力させるためには、Maskプロパティを設定する必要があります。
このプロパティにより、ユーザーが入力できる形式を指定できます。
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// MaskedTextBoxの設定
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Mask = "00000"; // 5桁の数字を入力するマスク
maskedTextBox.Location = new Point(10, 10);
this.Controls.Add(maskedTextBox);
}
}
この例では、5桁の数字を入力するためのマスクを設定しています。
ユーザーは、数字以外の文字を入力できません。
数字入力用のマスクパターン
数字のみを入力するためのマスクパターンは、以下のように設定できます。
マスクパターン | 説明 |
---|---|
0 | 数字(0-9)を必須 |
9 | 数字または空白を許可 |
# | 数字または空白を許可(負の数も可) |
A | アルファベット(大文字)を必須 |
a | アルファベット(小文字)を必須 |
例えば、"00000"
と設定すると、5桁の数字のみが入力可能になります。
入力制限の効果と注意点
MaskedTextBoxを使用することで、ユーザーの入力を制限し、データの整合性を保つことができます。
しかし、以下の点に注意が必要です。
- ユーザー体験: マスクが厳しすぎると、ユーザーが入力しづらく感じることがあります。
適切なマスクを選択することが重要です。
- エラーハンドリング: ユーザーが無効な入力を行った場合、適切なエラーメッセージを表示することが必要です。
- データの取得: 入力されたデータは、MaskedTextBoxのTextプロパティから取得できますが、マスクに従った形式であることを確認する必要があります。
実装手順
MaskedTextBoxの配置
まず、WindowsフォームにMaskedTextBoxを配置します。
Visual Studioのデザイナーを使用するか、コードで動的に追加することができます。
以下は、コードでMaskedTextBoxを配置する例です。
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// MaskedTextBoxのインスタンスを作成
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Location = new Point(10, 10); // 配置位置
maskedTextBox.Mask = "00000"; // 5桁の数字を入力するマスク
this.Controls.Add(maskedTextBox); // フォームに追加
}
}
このコードでは、MaskedTextBoxをフォームに追加し、5桁の数字を入力するためのマスクを設定しています。
プロパティの設定
MaskedTextBoxには、さまざまなプロパティがあります。
以下は、特に重要なプロパティの一覧です。
プロパティ名 | 説明 |
---|---|
Mask | 入力形式を指定するマスク |
PromptChar | 入力がない場合に表示される文字 |
TextMaskFormat | 入力されたテキストのフォーマット |
ValidatingType | 入力値の型を指定する(例:整数型) |
例えば、PromptChar
を設定することで、ユーザーが入力していない部分に表示される文字を変更できます。
maskedTextBox.PromptChar = '_'; // 入力がない部分にアンダースコアを表示
入力検証の実装
ユーザーがMaskedTextBoxに入力した内容が正しいかどうかを検証するためには、イベントを利用します。
以下は、入力が完了した際に検証を行う例です。
private void maskedTextBox_Leave(object sender, EventArgs e)
{
MaskedTextBox maskedTextBox = sender as MaskedTextBox;
// 入力が正しいか検証
if (!maskedTextBox.MaskFull)
{
MessageBox.Show("正しい数字を入力してください。");
maskedTextBox.Focus(); // 再度フォーカスを当てる
}
}
この例では、MaskedTextBoxからフォーカスが外れたときに、入力が完全でない場合に警告メッセージを表示します。
これにより、ユーザーが正しい形式で入力するよう促すことができます。
応用例
小数点を含む数値の入力
MaskedTextBoxを使用して小数点を含む数値を入力する場合、マスクを工夫する必要があります。
以下のように、整数部と小数部を分けてマスクを設定します。
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// 小数点を含む数値のMaskedTextBoxを作成
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Mask = "00000.00"; // 5桁の整数部と2桁の小数部
maskedTextBox.Location = new Point(10, 10);
this.Controls.Add(maskedTextBox);
}
}
この例では、5桁の整数部と2桁の小数部を持つ数値を入力できるように設定しています。
ユーザーは、数字と小数点のみを入力できます。
電話番号や郵便番号の入力
電話番号や郵便番号の入力にもMaskedTextBoxは便利です。
例えば、電話番号の入力マスクを設定する場合、以下のようにします。
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// 電話番号用のMaskedTextBoxを作成
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Mask = "(999) 000-0000"; // 電話番号のマスク
maskedTextBox.Location = new Point(10, 10);
this.Controls.Add(maskedTextBox);
}
}
この例では、電話番号の形式 (XXX) XXX-XXXX
を指定しています。
ユーザーは、指定された形式に従って入力することが求められます。
郵便番号の場合も同様に、以下のように設定できます。
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// 郵便番号用のMaskedTextBoxを作成
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Mask = "999-9999"; // 郵便番号のマスク
maskedTextBox.Location = new Point(10, 10);
this.Controls.Add(maskedTextBox);
}
}
この例では、郵便番号の形式 XXX-XXXX
を指定しています。
日付の入力フォーマット
日付の入力にもMaskedTextBoxを利用できます。
以下のように、日付の形式を指定することができます。
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// 日付用のMaskedTextBoxを作成
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Mask = "00/00/0000"; // 日付のマスク
maskedTextBox.Location = new Point(10, 10);
this.Controls.Add(maskedTextBox);
}
}
この例では、日付の形式 MM/DD/YYYY
を指定しています。
ユーザーは、正しい日付形式で入力することが求められます。
これにより、日付の整合性を保つことができます。
まとめ
この記事では、C#のMaskedTextBoxを使用して数字のみを入力する方法について詳しく解説しました。
具体的には、MaskedTextBoxの配置やプロパティの設定、入力検証の実装方法、さらには小数点を含む数値や電話番号、日付の入力フォーマットの応用例についても触れました。
これらの知識を活用することで、ユーザーが正しい形式でデータを入力できるようにすることが可能です。
ぜひ、実際のプロジェクトにMaskedTextBoxを取り入れて、ユーザー体験を向上させてみてください。