write ahead log

ロールフォワード用

ComboBoxコントロールに表示値と値を一度に設定する

データの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