GcJPAddressのライセンス追加
InputMan for Windows Forms 7.0J SP1適用により改善された点の1つに、住所検索ライブラリ(GcJPAddress)ライセンスの自動追加があげられます。
![図6 ライセンスエラー表示](http://cz-cdn.shoeisha.jp/static/images/article/7057/7057_05.gif)
郵便番号欄に1文字でも入力すると[ライセンスについて]ダイアログが表示され、GcJPAddressのライセンスが見つからないと警告されました。これは開発環境で市販コントロールを配置したアプリを実行する際に時折見かける現象で、licenses.licxファイルの中に該当コントロールを記述していない(もちろん該当製品をインストールしてライセンス取得済が前提ですが)ときに発生します。
licenses.licxファイルに記述を追加する方法はいくつかありますが、一番簡単で確実なのは、ツールボックスから「GcJPAddress」アイコンをフォームデザイナ上にドラッグ&ドロップしてコントロールを配置し、すぐにコントロールを削除する方法です。この操作により自動的にlicenses.licxファイルに記述が追加されます。これらの設定はSP1以降では自動的に行われます。
licenses.licxファイルの内容を確認したいときは、ソリューションエクスプローラで「すべてのファイルを表示」①してから「My Projects」フォルダ②を開き「licenses.licx」③をダブルクリックします。
![図7 licenses.licxファイルの確認](http://cz-cdn.shoeisha.jp/static/images/article/7057/7057_06.gif)
郵便番号欄の見た目を調整する(サンプル:CZ1303CharMask)
郵便番号コントロール(GcPostal)は、JPAddressと組み合わせることで郵便番号から住所変換もできるすぐれものですが、その外見は標準コントロールのMaskコントロールと互換性のある外見になっています。この見た目も標準化という観点ではよいのですが、日本の業務システムでは、もっと「らしい」外見が求められることも多いでしょう。
そのような見た目にしたい場合は、郵便番号コントロールのかわりに、GcCharMaskコントロールを使うといいでしょう。GcCharMaskコントロールには住所検索機能がありませんが、そこを補う方法もInputManはちゃんと準備しています。それが住所検索コンポーネント(GcAddress)です。
郵便番号コントロールを削除しGcCharMaskコントロールを追加したら、ツールボックスの「GcAddress」アイコンをデザイナにドラッグ&ドロップします。
住所検索コンポーネントは非表示コントロールなので、Windowsフォーム上ではなくデザイナの非表示コントロールエリアに配置されます。
![図8 CZ1303CharMaskの画面デザイン](http://cz-cdn.shoeisha.jp/static/images/article/7057/7057_08a.gif)
住所検索コンポーネントがある場合、同じフォームにあるコントロールには、[GcAddressコンポーネントの名前]のAddressOutputSettingプロパティが追加されます。
GcCharMaskコントロールに追加されたAddressOutputSettingプロパティで、郵便番号から変換した住所を設定するコントロールを、AddressOutputプロパティに設定します。
![図9 AddressOutputプロパティに設定](http://cz-cdn.shoeisha.jp/static/images/article/7057/7057_09.gif)
licenses.licxファイルへの記載を確認したら実行してみましょう。
![図10 郵便番号から住所変換の確認](http://cz-cdn.shoeisha.jp/static/images/article/7057/7057_10.gif)
起動して空欄の画面が表示されたら、郵便番号欄を確認してみましょう。かなり現実の郵便番号欄っぽい見た目になっていると思います。
それでは郵便番号欄に郵便番号を入力します。「100」まで入力すると「東京都千代田区以下に記載がない場合」と自動的に表示され、さらに「0001」と入力すれば自動的に「東京都千代田区千代田」と表示され正しく動作していることが分かりました。
すごく便利ですが、郵便番号コントロールの手軽さを考えると、ぜひ次版にはGcCharMaskコントロールにもAddressOutputプロパティを直実装して欲しい所ですね。