コンボボックス(ComboBox)の小技を記録しておく。(前回の続き)
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
【コンボボックスの候補から特定の値を選択させる】
データベース等で読みだしたデータからコンボボックスの選択候補の中で条件に当てはまるものを選択させたい時がある。
そんな時は候補に含まれる文字を検索して、結果をSelectIndexに渡す。
① ComboBox.SelectIndex = ComboBox.FindString([検索値])
② ComboBox.SelectIndex = ComboBox.FindStringExact([検索値])
①はコンボボックスの候補から検索値と「先頭一致」する候補を検索してIndexを返します。
②はコンボボックスの候補から検索値と「部分一致」する候補を検索してIndexを返します。
①・②共に検索が無い場合は-1を返しますのでコンボボックスの表示欄は空白を示します。
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
【コンボボックスとデータテーブルの連携】
DataSourceメソッドがあれば大体はDataTableと連携が可能。
------------------------------------------
Dim tblGetData As New DataTable
With tblGetData
.Columns.Add(New DataColumn(“機嫌コード”, GetType(Integer)))
.Columns.Add(New DataColumn(“機嫌”, GetType(String)))
‘tblGetDataにレコードを追加
.Rows.Add()
.Rows(0).Item(“機嫌コード”) = 0
.Rows(0).Item(“機嫌”) = “良い”
.Rows.Add()
.Rows(1).Item(“機嫌コード”) = 1
.Rows(1).Item(“機嫌”) = “どちらかといえば良い”
.Rows.Add()
.Rows(2).Item(“機嫌コード”) = 2
.Rows(2).Item(“機嫌”) = “どちらともいえない”
.Rows.Add()
.Rows(3).Item(“機嫌コード”) = 3
.Rows(3).Item(“機嫌”) = “どちらかといえば悪い”
.Rows.Add()
.Rows(4).Item(“機嫌コード”) = 4
.Rows(4).Item(“機嫌”) = “悪い”
End With
With ComboBox
.DataSource = tblGetData.DefaultView
.DisplayMember = tblGetData.Columns(“機嫌”).Caption
.ValueMember = tblGetData.Columns(“機嫌コード”).Caption
.SelectedIndex = 0
End With
------------------------------------------
DataTableの構成を行い、データを格納してから、ComboBoxの各要素に設定をする。
設定が必要な要素は
DataSource
DisplayMember
ValueMember
SelectedIndex
の4つあればいける。