SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(InputMan)

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

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

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

有効期限の入力処理

 最後の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コントロールをぜひ試してみてください。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(InputMan)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3624 2009/03/17 12:14

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング