GUIの作成とGcCommonValidatorコンポーネントについて
フォームのデザインは、次のようなものです。
フォームそのものは、標準コントロールのTextBox、Label、Buttonで構成していますが、フォームにGcCommonValidatorコンポーネントを組み込むと、次のプロパティが各コントロールに追加されます。
プロパティ | 機能 |
---|---|
UseDefaultValidateItems | デフォルトの検証方法を利用するかどうかを設定 |
UseValidateActions | デフォルトの通知方法を利用するかどうかを設定 |
ValidateItems | 入力された値をどのように検証するかを設定 |
ValidateActions | 入力値がエラーとなった時の通知の方法やフォーカスおよび入力値の処理方法を設定 |
また、各コントロールのスマートタグに、次のメニューが追加されます。
- 検証アイテム
- 検証アクション
検証アイテムは、コントロールに入力された値をどのように検証するかを定義するための機能です。必須入力、データタイプ、入力禁止文字など多くの検証オプションが使えるようになっています。
検証アクションは、コントロールで検証した結果エラーが検出された場合の動作について設定するための機能です。アイコンで通知する、バルーンチップを表示する、フォーカスを固定する、などエラーをユーザーに通知する機能を提供します。また、不正値を保持したコントロールを取得できますので、プログラム側で入力エラーが発生していることを把握して処理することができます。
このプログラムでは、フォームに入力したデータをExcelのワークシートに転送します。その際、事前にフォーム側で入力データのチェックを行い、正しいデータがワークシートに入力されるようにします。
検証アイテムと検証アクションの設定
フォームに配置した4つのTextBoxコントロールに、検証アイテムと検証アクションを設定します。TextBoxコントロールは、次のような入力エラー処理を設定します。
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が空白のまま他のコントロールにフォーカスが移動した場合、検証アクションに設定したアクションが実行されます。