-2

リストボックスに含まれるテキストを見つけるためのコードがいくつか与えられましたが、それは必要なものではありません。ユーザーがテキスト ボックス (検索フィールド) に入力する場合、テキストの一部ではなく、正確なテキストを入力する必要があります。リストボックスで値/テキストの一部を見つける方法はありますか?

たとえば、次の項目を含むリスト ボックスがあります。

  1. データ1
  2. データ2

検索フィールド (textbox/richtextbox) に (2) と入力すると、'2' の値を含む 2 番目の項目が選択されます。

これをどのようにコーディングできますか?

4

3 に答える 3

1

あなたが使用することができますIndexOf

Dim hits = From item In listBox1.Items.Cast(Of String)()
           Where item.IndexOf(txtSearch.Text, StringComparison.OrdinalIgnoreCase) >= 0
If hits.Any Then
    listBox1.SelectedItem = hits.First()
End If

大文字と小文字を区別したくない場合は、String.Contains代わりに を使用してString.IndexOfください。

上記は linq クエリであるため、この方法では .NET 2 では機能しないことに注意してください。

于 2013-01-11T09:57:34.363 に答える
0

検索に必要な用語を知っている必要があります。たとえば、検索テキストの文字のいずれかを含むテキスト、完全な単語、記号を検索しないテキストなどです。「手動で」行う必要があり、類似のテキストを検索する機能はありません。

例えば:

Private Sub SearchBox_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles SearchBox.TextChanged
    Dim iFound As Integer = -1

    For i As Integer = 0 To SearchBox.TextLength - 1
        If TextBox1.Text.Contains(SearchBox.Text(i)) Then
            iFound = TextBox1.Text.IndexOf(SearchBox.Text(i))
            Exit For
        End If
    Next

    If iFound >= 0 Then
        TextBox1.Select(iFound, 1)
    End If
End Sub
于 2013-01-11T09:58:09.417 に答える