Hello everybody !!! 皆さん、C# programing 頑張っていますか?
皆さんと一緒に .NET プログラミングを学んでいく、「トニー電」です。今日も張り切っていきましょう。
今日は、郵便番号と電話番号のテキストボックスを変更していきましょう。
■郵便番号のテキストボックスを変更する
日本の郵便番号は、「000-0000」のように7桁になっています。はじめに3桁の数字があって、ハイフン、そして4桁の数字ですね。これを振り仮名のようにテキストボックスだけで制限するのは...できないことはないのですが、もっと良いコントロールが用意されています。
まずは、ツールバーの中の「MaskedTextBox」コントロールを、郵便番号のテキストボックスと取り替えます。
取り替えた後に、コントロールの名前を textZipCode に変えてください。このように名前を同じにすることで、コードを変更せずに使えます。
マスクテキストの右上にある▲をクリックして、タスクを表示させて「マスクの設定」をクリックします。
そうすると、定型入力のダイアログが出てきます。ここで、色々なフォーマットで入力を制限できるわけです。
このなかで、ちょうど「郵便番号」がありますよね。これをクリックすると、マスクの部分が変わります。
そのまま、OK ボタンをクリックすると、マスクが設定されます。
実行して動作を確認してみましょう。
「1234567」と入力すると、自動的に「123-4567」というフォーマットに変えられます。しかも、7桁以上の数字を入れられません。もちろん、アルファベットを入力することもできません。便利ですね。
登録ボタンをクリックして、出力ウィンドウをみてみましょう。
zipcode のところが、「123-4567」と入力されていることが分かります。これで郵便番号は大丈夫そうです。
■電話番号のテキストボックスを変更する
同じように、電話番号 textTelephone、FAX textFax、携帯電話 textKtai の3つのテキストボックスも MaskedTextBox コントロールに変更しましょう。
電話番号とFAXは、「電話番号」、携帯電話は「携帯電話番号」を設定しておきます。
■メールアドレスの入力を制限する
メールアドレスのテキストボックスは、振り仮名と同じように Validating イベントと Validated イベントを使います。
2つのイベントを textMail コントロールに追加します。
コードは次の通りです。
private void textMail_Validating(object sender, CancelEventArgs e)
{
string text = textMail.Text;
// 空白の場合はそのまま
if (text.Length == 0)
return;
// ひらがなと空白のみ
Regex rx = new Regex(@"^[^@\s]+[@]([^.\s]+[.]){1,}[^.\s]+$");
if (!rx.IsMatch(text))
{
this.errorProvider1.SetError(textMail, "正しくないメールアドレスの形式です");
e.Cancel = true;
}
}
private void textMail_Validated(object sender, EventArgs e)
{
// 検証済みの場合はエラーをクリアする
this.errorProvider1.SetError(textMail, null);
}
正規表現はちょっと難しいですが、「xxxxx@xxxxx.com」 や、「xxxx@xxxx.co.jp」 のようなメールアドレスを入力できます。
どうですか?正規表現で入力を制限する方法がわかったでしょうか。正規表現自体はちょっと複雑で難しいところがありますが、入力制限自体は Validating イベントと Validated イベントを設定すればよいのです。
さて、今日はここまでにしておきましょう。
明日は、分類の ComboBox コントロールと、名前や住所の文字数制限を入れていきます。
では、See you again, bye bye !!!