画面イメージ
コンボボックスの値変更時にフィルタを設定
VB
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
'空の場合はフィルタ解除
If ComboBox1.SelectedItem = "" Then
dt.DefaultView.RowFilter = ""
Return
End If
'コンボボックスの選択値でフィルタ
dt.DefaultView.RowFilter = "TYPE = '" & ComboBox1.SelectedItem & "'"
End Sub
動作確認用コード
VB
Public dt As New DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'列追加
dt.Columns.Add("TYPE", GetType(String))
dt.Columns.Add("NAME", GetType(String))
'データ追加
dt.Rows.Add("野菜", "かぼちゃ")
dt.Rows.Add("野菜", "にんじん")
dt.Rows.Add("果物", "ぶどう")
dt.Rows.Add("果物", "さくらんぼ")
'DataGridViewのデータソースに指定
DataGridView1.DataSource = dt
'DataGridView設定
With DataGridView1
.Columns("TYPE").Width = 150
.Columns("NAME").Width = 100
.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
.ColumnHeadersHeight = 40
.AllowUserToAddRows = False
End With
'コンボボックス設定
With ComboBox1
.DropDownStyle = ComboBoxStyle.DropDownList
.Items.Add("")
.Items.Add("野菜")
.Items.Add("果物")
End With
End Sub
コメント