郵便番号コントロールの機能は、「JPAddress for .NET(以下、JPAddress)」を利用して実現されており、検索機能を利用するためにはJPAddressのインストールおよび開発ライセンスが必要です。また、検索機能を使用するためには、JPAddressのGcJPAddressコンポーネントをページに配置する必要があります。
詳細については「JPAddress for .NETとの連携」を参照してください。
住所検索コンポーネントは拡張プロバイダとして動作します。住所検索コンポーネントをフォームに追加すると、フォーム上に配置されたコントロールが拡張され、SetAddressOutputSetting メソッドが入力コントロールのプロパティグリッドに 「AddressOutputSetting プロパティ」として追加されます。

AddressOutputSetting プロパティはAddressOutputSetting クラスを参照し、このクラスの以下のプロパティを設定することで、出力用コントロールおよび動作の設定を行うことができます。
- AddressQuerymode プロパティ
検索の対象を取得または設定します。
プロパティ値 |
説明 |
ByZipCodeForGeneral |
住所の郵便番号を対象に検索を行います。 |
ByZipCodeForCompany |
大口事業所の個別番号を対象に検索を行います。 |
ByZipCodeForAll |
住所の郵便番号と大口事業所個別番号の両方を対象に検索を行います。 |
ByPhoneCode |
市外局番を対象に検索を行います。 |
ByJISCode |
全国地方公共団体コードを対象に検索を行います。 |
- AddressOutput プロパティ
検索結果の「住所」を出力するコントロールを取得または設定します。
- AddressKanaOutput プロパティ
検索結果の「住所(フリガナ)」を出力するコントロールを取得または設定します。
- ZipCodeOutput プロパティ
検索結果の「郵便番号」を出力するコントロールを取得または設定します。
- JISCodeOutput プロパティ
検索結果の「全国地方公共団体コード」を出力するコントロールを取得または設定します。
- PhoneCodeOutput プロパティ
検索結果の「市外局番」を出力するコントロールを取得または設定します。
- ClearTarget プロパティ
住所出力を行う前に、出力先となるコントロールの内容を消去するかしないかを取得または設定します。
- SplitAreaDetails プロパティ
同じ郵便番号に複数の丁目が含まれているときにそれぞれを分割するかどうかを取得または設定します。
郵便番号によっては、ひとつの郵便番号に複数の丁目が含まれている場合があります。こういった場合に、それぞれを分割して別々のレコードとするか、複数の丁目がまとまったままのひとつのレコードとするかを設定します。
【例】〒105-0022は「東京都港区海岸(1、2丁目)」と登録されています。これを
と別々のレコードとして扱うか
とひとつのレコードとして扱うかを指定します。
 |
SplitAreaDetails プロパティをTrue に設定してそれぞれを別々のレコードとして扱った場合、分割した最初のレコードが検索結果として返されます。 |
- GenerateCompanyAddressKana プロパティ
大口事業所の検索結果に住所のカナを含めるかどうかを取得または設定します。
大口事業所の個別番号の検索結果にのみ有効です。住所の郵便番号の場合には住所のカナは必ず含まれます。
- ExactMatchPhoneCode プロパティ
市外局番の検索で完全一致検索をするかしないかを取得または設定します。
コードによって検索の対象と出力用コントロールを設定するには、以下のように SetAddressOutputSetting メソッドを使用します。
Imports GrapeCity.Win.Editors
' AddressOutputSettingオブジェクトを作成します。
Dim AddressOutputSetting1 As AddressOutputSetting = New AddressOutputSetting()
' AddressOutputSettingオブジェクトに検索の対象と出力用コントロールを設定します。
AddressOutputSetting1.AddressQuerymode = AddressQuerymode.ByZipCodeForAll
AddressOutputSetting1.AddressOutput = GcTextBox2
AddressOutputSetting1.AddressKanaOutput = GcTextBox3
AddressOutputSetting1.ZipCodeOutput = GcTextBox4
AddressOutputSetting1.JISCodeOutput = GcTextBox5
AddressOutputSetting1.ClearTarget = True
AddressOutputSetting1.SplitAreaDetails = True
AddressOutputSetting1.GenerateCompanyAddressKana = True
' GcAddressにAddressOutputSettingオブジェクトを設定します。
GcAddress1.SetAddressOutputSetting(GcTextBox1, AddressOutputSetting1)
using GrapeCity.Win.Editors;
// AddressOutputSettingオブジェクトを作成します。
AddressOutputSetting addressOutputSetting1 = new AddressOutputSetting();
// AddressOutputSettingオブジェクトに検索の対象と出力用コントロールを設定します。
addressOutputSetting1.AddressQuerymode = AddressQuerymode.ByZipCodeForAll;
addressOutputSetting1.AddressOutput = gcTextBox2;
addressOutputSetting1.AddressKanaOutput = gcTextBox3;
addressOutputSetting1.ZipCodeOutput = gcTextBox4;
addressOutputSetting1.JISCodeOutput = gcTextBox5;
addressOutputSetting1.ClearTarget = true;
addressOutputSetting1.SplitAreaDetails = true;
addressOutputSetting1.GenerateCompanyAddressKana = true;
// gcAddressにAddressOutputSettingオブジェクトを設定します。
gcAddress1.SetAddressOutputSetting(gcTextBox1, addressOutputSetting1);
住所検索コンポーネントでは以下のメソッドを提供しており、これらを利用して対象の住所情報を取得することが可能です。
' 郵便番号から住所情報を取得します。
GcListBox1.DataSource = GcAddress1.GetAddress("1638001", True, GrapeCity.Win.Editors.ZipCodeQueryMode.Both, True)
' 市外局番から都道府県市区町村情報を取得します。
GcListBox2.DataSource = GcAddress1.GetAddressFromPhoneCode("03", False)
' 住所から郵便番号を取得します。
GcListBox3.DataSource = GcAddress1.GetZipCode("東京都渋谷区渋谷", GrapeCity.Win.Editors.ZipCodeQueryMode.GeneralZipCode)
// 郵便番号から住所情報を取得します。
GcListBox1.DataSource = gcAddress1.GetAddress("1638001", true, GrapeCity.Win.Editors.ZipCodeQueryMode.Both, true);
// 市外局番から都道府県市区町村情報を取得します。
GcListBox2.DataSource = gcAddress1.GetAddressFromPhoneCode("03", false);
// 住所から郵便番号を取得します。
GcListBox3.DataSource = gcAddress1.GetZipCode("東京都渋谷区渋谷", GrapeCity.Win.Editors.ZipCodeQueryMode.GeneralZipCode);
上記サンプルコードの実行結果は次のようになります。
GcListBox1 :

GcListBox2 :

GcListBox3 :
AddressOutputting イベントをハンドルすることで検索結果を取得することができます。検索結果をコントロールに出力しないでメッセージで表示するなどといった用途に対応できます。
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
' AddressOutputSettingオブジェクトを作成します。
Dim AddressOutputSetting1 As GrapeCity.Win.Editors.AddressOutputSetting = New GrapeCity.Win.Editors.AddressOutputSetting()
AddressOutputSetting1.AddressQuerymode = GrapeCity.Win.Editors.AddressQuerymode.ByZipCodeForAll
AddressOutputSetting1.SplitAreaDetails = True
AddressOutputSetting1.GenerateCompanyAddressKana = True
' GcAddressにAddressOutputSettingオブジェクトを設定します。
GcAddress1.SetAddressOutputSetting(GcMask1, AddressOutputSetting1)
GcMask1.Value = "1638001"
' AddressOutputtingイベントが発生します。
AddHandler GcAddress1.AddressOutputting, AddressOf GcAddress1_AddressOutputting
End Sub
Private Sub GcAddress1_AddressOutputting(sender As System.Object, e As GrapeCity.Win.Editors.AddressOutputtingEventArgs) Handles GcAddress1.AddressOutputting
' 出力された住所を表示します。
MessageBox.Show(e.OutputAddress)
End Sub
private void Form1_Load(object sender, EventArgs e)
{
// AddressOutputSettingオブジェクトを作成します。
GrapeCity.Win.Editors.AddressOutputSetting addressOutputSetting1 = new GrapeCity.Win.Editors.AddressOutputSetting();
addressOutputSetting1.AddressQuerymode = GrapeCity.Win.Editors.AddressQuerymode.ByZipCodeForAll;
addressOutputSetting1.SplitAreaDetails = true;
addressOutputSetting1.GenerateCompanyAddressKana = true;
// gcAddressにAddressOutputSettingオブジェクトを設定します。
gcAddress1.SetAddressOutputSetting(gcMask1, addressOutputSetting1);
gcMask1.Value = "1638001";
// AddressOutputtingイベントが発生します。
gcAddress1.AddressOutputting += new EventHandler<GrapeCity.Win.Editors.AddressOutputtingEventArgs>(gcAddress1_AddressOutputting);
}
private void gcAddress1_AddressOutputting(object sender, GrapeCity.Win.Editors.AddressOutputtingEventArgs e)
{
// 出力される住所を表示します。
MessageBox.Show(e.OutputAddress);
}