有効期限の入力処理
最後のGcMaskコントロールは、クレジットカードの有効期限を選ぶ処理です。これは、GcMaskコントロールにMaskEnumerationFieldオブジェクトで1月から12月までと2009年から2020年までの西暦を設定し、スピンボタンで選べるようにします。
月数は、そのまま文字列型の配列を作成し、MaskEnumerationFieldクラスのコンストラクタの引数に設定します。西暦はデータを作成するのが面倒なので、For…Nextステートメント(forステートメント)を使って文字列に変換し(VBは自動型変換機能を使います)、文字列型の配列を作成してMaskEnumerationFieldクラスのコンストラクタの引数に設定します。
そして、それぞれのGcMaskコントロールに組み込み、プロパティウィンドウでSideButtonsプロパティにSpinButtonを設定します。プロパティ値欄の「...」ボタンを押すと、「サイドボタンの編集」エディタが表示されるので、「追加」ボタンを押して「SpinButton」を選べば、GcMaskコントロールに設定されます。
これで、MaskEnumerationFieldオブジェクトに設定した複数の文字列を、スピンボタンを使ってスクロールして表示し、選ぶことができます。
'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})
//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プロパティを参照します。
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
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コントロールをぜひ試してみてください。