私の問題は、リストボックスで複数選択されたアイテムで datagridview をフィルタリングできないことです。
複数のテキストボックス、コンボボックス、および 1 つの項目を選択したリストボックスで datagridview をフィルタリングできます。ただし、リストボックスの複数選択でフィルタリングできません。どうすればこれを解決できますか?
どんな助けでも大歓迎です。
私の問題は、リストボックスで複数選択されたアイテムで datagridview をフィルタリングできないことです。
複数のテキストボックス、コンボボックス、および 1 つの項目を選択したリストボックスで datagridview をフィルタリングできます。ただし、リストボックスの複数選択でフィルタリングできません。どうすればこれを解決できますか?
どんな助けでも大歓迎です。
私は先に進み、あなたのコメントに基づいて私の直感を投稿します:
ListBox.Text は、最初に選択された item.ToString() を提供します。これは、2 つのオブジェクトを選択しても、最初のオブジェクトのみが表示されることを意味します。あなたがしなければならないことは、異なる ListBoxItems をループして、それらを 1 つずつ個別に追加することです。だからあなたが探しているのは次のようなものです:
Dim Result As String = String.Format("mycolumn2 Like '%{0}%' AND (", ComboBox1.Text)
For i As Integer = 0 To ListBox1.SelectedItems.Count - 1
Result &= String.Format(" mycolumn Like '%{0}%'", ListBox1.SelectedItems(i).ToString)
If i <> ListBox1.SelectedItems.Count - 1 Then
Result &= " OR "
Else
Result &= ")"
End If
Next
括弧が機能するかどうかはわかりませんが、半分期待しています。これにより、mycolumn2 がテキスト ボックスと一致することを必要とするフィルターが作成され (前と同様)、mycolumn が選択された ListBox1.Items のいずれかと一致することが要求されます。