0
我是在.net中開發UI的新手。基本上我使用的是一個列表視圖,我想在列表視圖中搜索項目。 假設列表中包含這樣的:如何在沒有發現字符串的情況下在listview中搜索所有項目
斯諾名稱
1邁克爾·傑克遜
約翰二米切爾
如果我搜索usign應該顯示所有符合條件的項目中第二個或第三個任期。 我試過使用.FindString,但它只是搜索第一項。這不是我想要的。任何人都可以告訴我一個更好的方式來做我想做的事嗎?
我是在.net中開發UI的新手。基本上我使用的是一個列表視圖,我想在列表視圖中搜索項目。 假設列表中包含這樣的:如何在沒有發現字符串的情況下在listview中搜索所有項目
斯諾名稱
1邁克爾·傑克遜
約翰二米切爾
如果我搜索usign應該顯示所有符合條件的項目中第二個或第三個任期。 我試過使用.FindString,但它只是搜索第一項。這不是我想要的。任何人都可以告訴我一個更好的方式來做我想做的事嗎?
只要重複調用ListBox.FindString(),直到找到它們全部。例如:
Public Class Form1
Public Sub New()
InitializeComponent()
ListBox1.SelectionMode = SelectionMode.MultiExtended
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
ListBox1.BeginUpdate()
ListBox1.SelectedIndices.Clear()
If TextBox1.Text.Length > 0 Then
Dim index As Integer = -1
Do
dim found As integer = ListBox1.FindString(TextBox1.Text, index)
If found <= index Then Exit Do
ListBox1.SelectedIndices.Add(found)
index = found
Loop
End If
ListBox1.EndUpdate()
End Sub
End Class
如果你需要找到列表框項目字符串的任何部分匹配,那麼你可以搜索這樣的項目:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
ListBox1.BeginUpdate()
ListBox1.SelectedIndices.Clear()
If TextBox1.Text.Length > 0 Then
For index As Integer = 0 To ListBox1.Items.Count - 1
Dim item As String = ListBox1.Items(index).ToString()
If item.IndexOf(TextBox1.Text, StringComparison.CurrentCultureIgnoreCase) >= 0 Then
ListBox1.SelectedIndices.Add(index)
End If
Next
End If
ListBox1.EndUpdate()
End Sub