CodeZine(コードジン)

特集ページ一覧

入力エラーを未然に防ぐ.NET アプリケーションを作る

InputMan for Windows Forms 5.0Jのマスクコントロール「GcMask」を使って、定型書式を入力時に設定したアプリケーションの作成

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/02/27 14:00
目次

有効期限の入力処理

 最後のGcMaskコントロールは、クレジットカードの有効期限を選ぶ処理です。これは、GcMaskコントロールにMaskEnumerationFieldオブジェクトで1月から12月までと2009年から2020年までの西暦を設定し、スピンボタンで選べるようにします。

 月数は、そのまま文字列型の配列を作成し、MaskEnumerationFieldクラスのコンストラクタの引数に設定します。西暦はデータを作成するのが面倒なので、For…Nextステートメント(forステートメント)を使って文字列に変換し(VBは自動型変換機能を使います)、文字列型の配列を作成してMaskEnumerationFieldクラスのコンストラクタの引数に設定します。

 そして、それぞれのGcMaskコントロールに組み込み、プロパティウィンドウでSideButtonsプロパティにSpinButtonを設定します。プロパティ値欄の「...」ボタンを押すと、「サイドボタンの編集」エディタが表示されるので、「追加」ボタンを押して「SpinButton」を選べば、GcMaskコントロールに設定されます。

 これで、MaskEnumerationFieldオブジェクトに設定した複数の文字列を、スピンボタンを使ってスクロールして表示し、選ぶことができます。

「サイドボタンの編集」エディタで「追加-SpinButton」を選ぶ
「サイドボタンの編集」エディタで「追加-SpinButton」を選ぶ
Visual Basic
'GcMask4の設定
Dim month As String() = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"}
Dim maskEnumerationField2 As MaskEnumerationField = New MaskEnumerationField(month)
GcMask4.Fields.AddRange(New MaskField() {maskEnumerationField2})

'GcMask5の設定
Dim year(11) As String
Dim i As Integer

For i = 0 To 11
	year(i) = 2009 + i
Next

Dim maskEnumerationField3 As MaskEnumerationField = New MaskEnumerationField(year)
GcMask5.Fields.AddRange(New MaskField() {maskEnumerationField3})
C#
//GcMask4の設定
String[] month= {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"};
MaskEnumerationField maskEnumerationField2 = new MaskEnumerationField(month);
gcMask4.Fields.AddRange(new MaskField[] {maskEnumerationField2});

//GcMask5の設定
String[] year = new String[12];

for(int i=0;i<=11;i++){
	year[i] =  Convert.ToString(2009 + i);
}

MaskEnumerationField maskEnumerationField3 = new MaskEnumerationField(year);
gcMask5.Fields.AddRange(new MaskField[] {maskEnumerationField3});

入力データを表示する処理

 最後に、入力データをフォームForm2で表示し確認できるようにすればできあがりです。

 各GcMaskコントロールの入力値を取得するには、Valueプロパティを参照します。また、リテラル文字も含めて取得したい場合は、Textプロパティを参照します。

Visual Basic
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Form2.Label4.Text = GcMask1.Value + GcMask2.Value
    Form2.Label5.Text = GcMask3.Text
    Form2.Label6.Text = GcMask4.Value + "/" + GcMask5.Value
    Form2.Show()
End Sub
C#
private void button1_Click(object sender, EventArgs e)
{
    Form2 fm2 = new Form2();
    fm2.Controls["label4"].Text = gcMask1.Value + gcMask2.Value;
    fm2.Controls["label5"].Text = gcMask3.Text;
    fm2.Controls["label6"].Text = gcMask4.Value + "/" + gcMask5.Value;
    fm2.Show();
}

まとめ

 GcMaskコントロールは、いろいろな形で入力フィールドにマスクをかけることができますので、このように入力時に制限を設けて正しいデータが入力できる機能をアプリケーションに持たせるには、威力を発揮するコントロールです。入力処理で悩んでいるのであれば、このGcMaskコントロールをぜひ試してみてください。



  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 瀬戸 遥(セト ハルカ)

    8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

バックナンバー

連載:ComponentZine(InputMan)

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5