[C#] MaskedTextBoxにデフォルト値を設定する方法
MaskedTextBoxにデフォルト値を設定するには、まずMaskedTextBoxコントロールのText
プロパティを使用して初期値を指定します。
例えば、電話番号のマスクを設定している場合、maskedTextBox.Text = "123-456-7890";
のようにデフォルト値を設定できます。
また、Mask
プロパティを使用して入力フォーマットを指定することも重要です。
これにより、ユーザーが入力する際に特定の形式に従うように制限されます。
デフォルト値を設定する際は、マスクに合致する形式で値を指定する必要があります。
MaskedTextBoxの設定方法
C#のWindowsフォームアプリケーションにおいて、MaskedTextBox
は特定の形式の入力をユーザーに促すための便利なコントロールです。
ここでは、MaskedTextBox
の設定方法について詳しく解説します。
Maskプロパティの設定
MaskedTextBox
のMask
プロパティは、ユーザーが入力する際の形式を指定します。
例えば、電話番号や日付など、特定のフォーマットを強制することができます。
以下は、Mask
プロパティを設定するサンプルコードです。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// MaskedTextBoxのインスタンスを作成
MaskedTextBox maskedTextBox = new MaskedTextBox();
// マスクを設定(電話番号形式)
maskedTextBox.Mask = "(999) 000-0000";
// フォームに追加
this.Controls.Add(maskedTextBox);
}
}
このコードでは、MaskedTextBox
に電話番号の形式を設定しています。

ユーザーは、指定された形式に従って入力する必要があります。
Textプロパティの設定
Text
プロパティは、MaskedTextBox
に表示される初期値を設定するために使用します。
Mask
プロパティで指定した形式に合った値を設定する必要があります。
以下は、Text
プロパティを設定するサンプルコードです。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Mask = "(999) 000-0000";
// 初期値を設定
maskedTextBox.Text = "(123) 456-7890";
this.Controls.Add(maskedTextBox);
}
}
このコードでは、MaskedTextBox
に電話番号の初期値を設定しています。
ユーザーはこの値を編集することができます。
デフォルト値の設定手順
MaskedTextBox
にデフォルト値を設定する手順は以下の通りです。
手順 | 説明 |
---|---|
1 | MaskedTextBox のインスタンスを作成する。 |
2 | Mask プロパティを設定する。 |
3 | Text プロパティにデフォルト値を設定する。 |
4 | フォームにMaskedTextBox を追加する。 |
これらの手順を踏むことで、MaskedTextBox
にデフォルト値を簡単に設定することができます。
デフォルト値を設定する際の注意点
MaskedTextBox
にデフォルト値を設定する際には、いくつかの注意点があります。
これらを理解しておくことで、ユーザーにとって使いやすいインターフェースを提供できます。
マスクとデフォルト値の整合性
MaskedTextBox
のMask
プロパティで指定した形式と、Text
プロパティで設定するデフォルト値は整合性が必要です。
例えば、マスクが電話番号形式である場合、デフォルト値もその形式に従う必要があります。
整合性がないと、ユーザーは不正な入力をすることになり、エラーが発生する可能性があります。
// 正しい例
maskedTextBox.Mask = "(999) 000-0000";
maskedTextBox.Text = "(123) 456-7890"; // 整合性あり
// 間違った例
maskedTextBox.Mask = "(999) 000-0000";
maskedTextBox.Text = "1234567890"; // 整合性なし
ユーザー入力の制限とバリデーション
デフォルト値を設定する際には、ユーザーが入力する内容に対する制限やバリデーションも考慮する必要があります。
MaskedTextBox
は、マスクに従った入力を強制するため、ユーザーが誤った形式で入力することを防ぎます。
しかし、デフォルト値が不適切な場合、ユーザーが混乱する可能性があります。
- ユーザーが入力する際のヒントを提供する
- 入力が完了した際にバリデーションを行う
- 不正な入力があった場合はエラーメッセージを表示する
デフォルト値のクリア方法
デフォルト値をクリアする方法も重要です。
ユーザーが入力を開始する前に、デフォルト値を消去することで、誤った情報を入力するリスクを減らすことができます。
以下は、デフォルト値をクリアするサンプルコードです。
using System.Windows.Forms;
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// フォーカス用ダミーボタン
Button button = new Button();
button.Text = "ダミーボタン";
button.Location = new System.Drawing.Point(10, 10);
this.Controls.Add(button);
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Location = new System.Drawing.Point(10, 40);
maskedTextBox.Mask = "(999) 000-0000";
maskedTextBox.Text = "(123) 456-7890"; // デフォルト値
// フォーカスが当たったときにデフォルト値をクリア
maskedTextBox.GotFocus += (sender, e) =>
{
if (maskedTextBox.Text == "(123) 456-7890")
{
maskedTextBox.Clear(); // デフォルト値をクリア
}
};
this.Controls.Add(maskedTextBox);
}
}
このコードでは、MaskedTextBox
にフォーカスが当たったときにデフォルト値をクリアする処理を追加しています。

これにより、ユーザーは自分の情報を入力しやすくなります。
実装例
ここでは、MaskedTextBox
を使用して、電話番号、日付、郵便番号のデフォルト値を設定する具体的な実装例を紹介します。
これにより、実際のアプリケーションでの使い方を理解しやすくなります。
電話番号のデフォルト値設定
電話番号の形式を設定し、デフォルト値を指定する例です。
以下のコードでは、電話番号のマスクを設定し、初期値を設定しています。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
MaskedTextBox phoneMaskedTextBox = new MaskedTextBox();
phoneMaskedTextBox.Mask = "(999) 000-0000";
// 電話番号のデフォルト値を設定
phoneMaskedTextBox.Text = "(123) 456-7890";
this.Controls.Add(phoneMaskedTextBox);
}
}
このコードを実行すると、MaskedTextBox
に電話番号の形式が適用され、デフォルト値が表示されます。
ユーザーはこの値を編集することができます。
日付のデフォルト値設定
日付の形式を設定し、デフォルト値を指定する例です。
以下のコードでは、日付のマスクを設定し、初期値を設定しています。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
MaskedTextBox dateMaskedTextBox = new MaskedTextBox();
dateMaskedTextBox.Mask = "00/00/0000"; // 日付形式(MM/DD/YYYY)
// 日付のデフォルト値を設定
dateMaskedTextBox.Text = "01/01/2023";
this.Controls.Add(dateMaskedTextBox);
}
}
このコードを実行すると、MaskedTextBox
に日付の形式が適用され、デフォルト値が表示されます。
ユーザーはこの値を編集することができます。
郵便番号のデフォルト値設定
郵便番号の形式を設定し、デフォルト値を指定する例です。
以下のコードでは、郵便番号のマスクを設定し、初期値を設定しています。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
MaskedTextBox postalCodeMaskedTextBox = new MaskedTextBox();
postalCodeMaskedTextBox.Mask = "99999"; // 郵便番号形式(5桁)
// 郵便番号のデフォルト値を設定
postalCodeMaskedTextBox.Text = "12345";
this.Controls.Add(postalCodeMaskedTextBox);
}
}
このコードを実行すると、MaskedTextBox
に郵便番号の形式が適用され、デフォルト値が表示されます。
ユーザーはこの値を編集することができます。
これらの実装例を参考にすることで、さまざまな形式のデフォルト値を持つMaskedTextBox
を効果的に活用できるようになります。
応用例
MaskedTextBox
を使用する際の応用例として、デフォルト値の動的変更、デフォルト値の保存と復元、複数のMaskedTextBox
の管理について解説します。
これにより、より柔軟で使いやすいユーザーインターフェースを実現できます。
デフォルト値の動的変更
ユーザーの操作に応じて、MaskedTextBox
のデフォルト値を動的に変更することができます。
以下のコードでは、ボタンをクリックすることでデフォルト値を変更する例を示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Mask = "(999) 000-0000";
maskedTextBox.Text = "(123) 456-7890";
Button changeDefaultButton = new Button();
changeDefaultButton.Text = "デフォルト値を変更";
// ボタンがクリックされたときにデフォルト値を変更
changeDefaultButton.Click += (sender, e) =>
{
maskedTextBox.Text = "(987) 654-3210"; // 新しいデフォルト値
};
this.Controls.Add(maskedTextBox);
this.Controls.Add(changeDefaultButton);
}
}
このコードを実行すると、ボタンをクリックすることでMaskedTextBox
のデフォルト値が変更されます。
デフォルト値の保存と復元
アプリケーションを再起動した際に、ユーザーが入力したデフォルト値を保存し、復元することができます。
以下のコードでは、Settings
を使用してデフォルト値を保存し、復元する例を示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Mask = "(999) 000-0000";
// アプリケーション起動時に保存されたデフォルト値を復元
maskedTextBox.Text = Properties.Settings.Default.PhoneNumber;
Button saveButton = new Button();
saveButton.Text = "デフォルト値を保存";
// ボタンがクリックされたときにデフォルト値を保存
saveButton.Click += (sender, e) =>
{
Properties.Settings.Default.PhoneNumber = maskedTextBox.Text; // 現在の値を保存
Properties.Settings.Default.Save(); // 設定を保存
};
this.Controls.Add(maskedTextBox);
this.Controls.Add(saveButton);
}
}
このコードを実行すると、ユーザーが入力した電話番号がアプリケーションの設定に保存され、次回起動時に復元されます。
複数のMaskedTextBoxの管理
複数のMaskedTextBox
を管理する場合、各コントロールの状態を一元管理することが重要です。
以下のコードでは、複数のMaskedTextBox
を使用し、それぞれのデフォルト値を管理する例を示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
MaskedTextBox phoneMaskedTextBox = new MaskedTextBox();
phoneMaskedTextBox.Mask = "(999) 000-0000";
phoneMaskedTextBox.Text = "(123) 456-7890";
MaskedTextBox dateMaskedTextBox = new MaskedTextBox();
dateMaskedTextBox.Mask = "00/00/0000";
dateMaskedTextBox.Text = "01/01/2023";
// 複数のMaskedTextBoxをリストで管理
List<MaskedTextBox> maskedTextBoxes = new List<MaskedTextBox>
{
phoneMaskedTextBox,
dateMaskedTextBox
};
foreach (var maskedTextBox in maskedTextBoxes)
{
this.Controls.Add(maskedTextBox);
}
}
}
このコードでは、複数のMaskedTextBox
をリストで管理し、フォームに追加しています。
これにより、各コントロールの状態を簡単に管理できるようになります。
これらの応用例を参考にすることで、MaskedTextBox
をより効果的に活用し、ユーザーにとって使いやすいインターフェースを提供できるようになります。
まとめ
この記事では、C#のWindowsフォームアプリケーションにおけるMaskedTextBox
のデフォルト値設定に関するさまざまな方法や注意点について詳しく解説しました。
特に、マスクとデフォルト値の整合性、ユーザー入力の制限、デフォルト値の動的変更や保存方法、複数のMaskedTextBox
の管理方法など、実践的な内容を中心に取り上げました。
これらの知識を活用して、ユーザーにとって使いやすいインターフェースを実現するための一歩を踏み出してみてください。