データのDictionaryを作って, DataSourceにBindingしてやると楽.
''' <summary> ''' コンボボックスに値を設定する ''' </summary> ''' <param name="combo">値を設定するコンボボックスコントロール</param> Private Sub setComboBox(ByVal combo As ComboBox) '========================================= '初期化 '========================================= 'コンボボックスの表示アイテムをクリア combo.Items.Clear() '表示値としてDataSourceの'Key'を利用 combo.DisplayMember = "Key" '値としてDataSourceの'Value'を利用 combo.ValueMember = "Value" '========================================= '設定するデータソースの準備 '========================================= Dim dic As New Dictionary(Of String, Integer) dic("りんご") = 1 '表示値:りんご => 値:1 dic("みかん") = 2 '表示値:みかん => 値:2 dic("すいか") = 3 '表示値:すいか => 値:3 'ダミー行が欲しい場合(未選択時の空白とか)は以下の様に入れとくと便利 dic("") = -1 '表示値:空白(未設定) => 値:-1 '========================================= 'データソースをコンボボックスへ設定 '========================================= combo.DataSource = New BindingSource(dic, Nothing) End Sub
これをロードイベントとかで呼び出してやる
''' <summary> ''' フォームロード時イベント ''' </summary> Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 'ComboBox1を設定 setComboBox(ComboBox1) End Sub