私はstackoverflowを検索し、見つけたコードを実装しようとしましたが、役に立ちませんでした。テキストが変更されたら、テキストボックス内の現在のテキストを使用してリストビューアイテムをフィルタリングし(一致するように閉じられていないアイテムは削除されます)、列に含まれているものだけが残ります。
これが私が意味することの例です:
検索:「ジョージ」
|1|アンダーソンシルバ|アンダーソンシルバは...|のチャンピオンです
| 2 | ジョルジュサンピエール| ジョルジュは...|のチャンピオンです
| 3 | ジョルジュソトロポリス| ジョルジュソトロポリスはライト級の戦闘機です|
この検索では、2行目と3行目のみが返されます。最初の行は省略され、表示されません。用語を消去すると、表示されます。
これが私が現在持っているコードです:
Private Sub tbSearch_TextChanged(sender As Object, e As System.EventArgs) Handles tbSearch.TextChanged
lwArticles.BeginUpdate()
If tbSearch.Text.Trim().Length = 0 Then
'Clear listview
lwArticles.Clear()
'If nothing is in the textbox make all items appear
For Each item In originalListItems
lwArticles.Items.Add(item)
Next
Else
'Clear listview
lwArticles.Clear()
'Go through each item in the original list and only add the ones which contain the search text
For Each item In originalListItems
If item.Text.Contains(tbSearch.Text) Then
lwArticles.Items.Add(item)
End If
Next
End If
lwArticles.EndUpdate()
End Sub
動作しているようですが、tbSearchに何かを入力すると、リストビューのアイテムが表示されません。実行中の検索により、アイテムの数が多い/少ない場合に応じて、スクロールバーが小さくなります。私の問題はそれらが見えないようです
ありがとうございました!