VBでコンボボックスにデータのペアを格納

VBでコンボボックスにコードと値をセットで格納するときの一例です。
コンボボックスのItems.Addの引数がObject型になっているのがポイントです。
たとえば、Items.Addに「みかん」とStringを渡すとそのままコンボボックスのりすとには「みかん」と表示されますが、これはセットされた値のtoString()メソッドで返される値をコンボボックスのリストに表示されています。
したがって、自分で作成したクラスにtoStringメソッドを実装してそのクラスをItems.Addで格納すると、toString()で返される値がコンボボックスに表示されます。
クラスを作成して、toStoringをメソッドをオーバーライドするところがミソです。

では早速コードで
たとえば商品コードと商品名のペアのリストを格納する場合、

Private Class SyouhinMasterClass
      Public code As String
      Public name As String
      Public Overrides Function ToString() As String
            Return name
      End Function
End Class

Dim mo_group_master(1) As GroupMasterClass

Sub ComboBox_init()
    mo_group_master(0) = New GroupMasterClass
    mo_group_master(0).group_code ="0001"
    mo_group_master(0).group_name ="りんご"

    mo_group_master(1) = New GroupMasterClass
    mo_group_master(1).group_code = "0002"
    mo_group_master(1).group_name = "みかん"

    combobox1.Items.Add( mo_group_master(0))
    combobox1.Items.Add( mo_group_master(1))

end Sub

コンボボックスから値を取り出すときは

Dim syohinObj as SyouhinMasterClass
syohinObj = combobox1.SelectedItem
msgbox (syohinObj.name)

 

カテゴリー: VB パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です