SHOEISHA iD

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

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

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(InputMan)

「InputMan」+「JPAddress」で楽々住所入力

Windows 8対応のInputMan for Windows Forms 7.0Jで高品位入力の実現

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

GcJPAddressのライセンス追加

 InputMan for Windows Forms 7.0J SP1適用により改善された点の1つに、住所検索ライブラリ(GcJPAddress)ライセンスの自動追加があげられます。

図6 ライセンスエラー表示
図6 ライセンスエラー表示

 郵便番号欄に1文字でも入力すると[ライセンスについて]ダイアログが表示され、GcJPAddressのライセンスが見つからないと警告されました。これは開発環境で市販コントロールを配置したアプリを実行する際に時折見かける現象で、licenses.licxファイルの中に該当コントロールを記述していない(もちろん該当製品をインストールしてライセンス取得済が前提ですが)ときに発生します。

 licenses.licxファイルに記述を追加する方法はいくつかありますが、一番簡単で確実なのは、ツールボックスから「GcJPAddress」アイコンをフォームデザイナ上にドラッグ&ドロップしてコントロールを配置し、すぐにコントロールを削除する方法です。この操作により自動的にlicenses.licxファイルに記述が追加されます。これらの設定はSP1以降では自動的に行われます。

 licenses.licxファイルの内容を確認したいときは、ソリューションエクスプローラで「すべてのファイルを表示」①してから「My Projects」フォルダ②を開き「licenses.licx」③をダブルクリックします。

図7 licenses.licxファイルの確認
図7 licenses.licxファイルの確認

郵便番号欄の見た目を調整する(サンプル:CZ1303CharMask)

 郵便番号コントロール(GcPostal)は、JPAddressと組み合わせることで郵便番号から住所変換もできるすぐれものですが、その外見は標準コントロールのMaskコントロールと互換性のある外見になっています。この見た目も標準化という観点ではよいのですが、日本の業務システムでは、もっと「らしい」外見が求められることも多いでしょう。

 そのような見た目にしたい場合は、郵便番号コントロールのかわりに、GcCharMaskコントロールを使うといいでしょう。GcCharMaskコントロールには住所検索機能がありませんが、そこを補う方法もInputManはちゃんと準備しています。それが住所検索コンポーネント(GcAddress)です。

 郵便番号コントロールを削除しGcCharMaskコントロールを追加したら、ツールボックスの「GcAddress」アイコンをデザイナにドラッグ&ドロップします。

 住所検索コンポーネントは非表示コントロールなので、Windowsフォーム上ではなくデザイナの非表示コントロールエリアに配置されます。

図8 CZ1303CharMaskの画面デザイン
図8 CZ1303CharMaskの画面デザイン

 住所検索コンポーネントがある場合、同じフォームにあるコントロールには、[GcAddressコンポーネントの名前]のAddressOutputSettingプロパティが追加されます。

 GcCharMaskコントロールに追加されたAddressOutputSettingプロパティで、郵便番号から変換した住所を設定するコントロールを、AddressOutputプロパティに設定します。

図9 AddressOutputプロパティに設定
図9 AddressOutputプロパティに設定

 licenses.licxファイルへの記載を確認したら実行してみましょう。

図10 郵便番号から住所変換の確認
図10 郵便番号から住所変換の確認

 起動して空欄の画面が表示されたら、郵便番号欄を確認してみましょう。かなり現実の郵便番号欄っぽい見た目になっていると思います。

 それでは郵便番号欄に郵便番号を入力します。「100」まで入力すると「東京都千代田区以下に記載がない場合」と自動的に表示され、さらに「0001」と入力すれば自動的に「東京都千代田区千代田」と表示され正しく動作していることが分かりました。

 すごく便利ですが、郵便番号コントロールの手軽さを考えると、ぜひ次版にはGcCharMaskコントロールにもAddressOutputプロパティを直実装して欲しい所ですね。

次のページ
住所入力を正確にする(サンプル:CZ1303Address)

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(InputMan)連載記事一覧

もっと読む

この記事の著者

初音玲(ハツネアキラ)

 国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。 個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。 Microsoft MVP for Windows Development ブログ:http://hatsune.hatenablog.jp/

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7057 2016/03/29 17:39

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング