SHOEISHA iD

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

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

ComponentZine(InputMan)

VB.NETで入力エラーチェック機能を持ったフォームを作成する

InputMan for Windows Forms 5.0JのGcCommonValidatorコンポーネントを使ったデータ入力フォームの作成

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

GUIの作成とGcCommonValidatorコンポーネントについて

 フォームのデザインは、次のようなものです。

GUIのデザイン
GUIのデザイン

 フォームそのものは、標準コントロールのTextBox、Label、Buttonで構成していますが、フォームにGcCommonValidatorコンポーネントを組み込むと、次のプロパティが各コントロールに追加されます。

プロパティ 機能
UseDefaultValidateItems デフォルトの検証方法を利用するかどうかを設定
UseValidateActions デフォルトの通知方法を利用するかどうかを設定
ValidateItems 入力された値をどのように検証するかを設定
ValidateActions 入力値がエラーとなった時の通知の方法やフォーカスおよび入力値の処理方法を設定

 また、各コントロールのスマートタグに、次のメニューが追加されます。

  • 検証アイテム
  • 検証アクション

 検証アイテムは、コントロールに入力された値をどのように検証するかを定義するための機能です。必須入力、データタイプ、入力禁止文字など多くの検証オプションが使えるようになっています。

 検証アクションは、コントロールで検証した結果エラーが検出された場合の動作について設定するための機能です。アイコンで通知する、バルーンチップを表示する、フォーカスを固定する、などエラーをユーザーに通知する機能を提供します。また、不正値を保持したコントロールを取得できますので、プログラム側で入力エラーが発生していることを把握して処理することができます。

 このプログラムでは、フォームに入力したデータをExcelのワークシートに転送します。その際、事前にフォーム側で入力データのチェックを行い、正しいデータがワークシートに入力されるようにします。

検証アイテムと検証アクションの設定

 フォームに配置した4つのTextBoxコントロールに、検証アイテムと検証アクションを設定します。TextBoxコントロールは、次のような入力エラー処理を設定します。

GUIのデザイン

TextBox1の検証アイテムの編集

 TextBox1のスマートタグをクリックすると、「検証アイテムの編集」というメニューが追加されているので、これをクリックします。「検証アイテムの編集」ダイアログが表示されるので、「追加」「挿入」ボタンを使って、設定する検証アイテムを挿入します。

「検証アイテムの編集」ダイアログで検証アイテムを設定する
「検証アイテムの編集」ダイアログで検証アイテムを設定する

 設定できるアイテムと内容は次のものが使用できます。

項目 アイテム名 内容
必須入力 EmptyText 対象のコントロールのTextプロパティが空かどうかを検証する
コントロールのTextプロパティが空もしくはNullの場合は不正とみなされる
データタイプ InvalidType コントロールに入力された値が指定したデータ型に一致するかどうか検証する
文字列リスト IncludeList 文字列リストに設定した文字列のいずれかが入力されているかどうか検証する
入力された文字列がリスト内にない場合、不正とみなされる
禁止文字 ExcludeList 文字列リストに設定した禁止文字列が入力されていないか検証する
リスト内にある文字列が入力された場合、不正とみなされる
サロゲートペア文字 SurrogateChar JIS2004で追加されたサロゲートペア文字が入力されていないかどうかを検証する
正規表現 RegularExpression 入力された文字列を正規表現を使って検証する
ペア文字 InvalidPairChar カッコなどのペアとなる文字が両方存在するかどうかを検証する
数値範囲 InvalidNumberRange 入力された値が、指定した数値の範囲内の値かどうかを検証する
日付範囲 InvalidDateTimeRange 入力された値が、指定した日付の範囲内の値かどうかを検証する
他のコントロールと数値比較 NumberCompareControl 対象となるコントロールの値と数値を比較検証する
数値比較 NumberCompareValue 指定する数値と値を比較検証する
他のコントロールと日付比較 DateTimeCompareControl 対象となるコントロールの値と日付を比較検証する
日付値比較 DateTimeCompareValue 指定する日付値と値を比較検証する

 このTextBox1では、会員番号の先頭にある3文字の英字が、「SKD」と「JJ」の2種類の英字に一致しているかどうかを検証するようにしますので、IncludeListアイテムを設定します。このアイテムを追加し、プロパティ「Candidates」に文字列を入力すると、プログラム実行時は自動的にこの文字列とTextBoxへの入力内容が一致しているかどうかのチェックが行われます。

 また、TextBoxへの入力が空白のままになっているのはまずいので、これもEmptyTextアイテムを使用してチェックします。「InvalidMessage」プロパティにエラーメッセージを入力すると、プログラム実行時、このTextBoxが空白のまま他のコントロールにフォーカスが移動した場合、検証アクションに設定したアクションが実行されます。

プロパティ「Candidates」に設定する文字列を入力するエディタ
プロパティ「Candidates」に設定する文字列を入力するエディタ

次のページ
TextBox1の検証アクションの編集

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング