例1:实现简单查找

Dim myList As New ListViewItem
         myList = ListView1.FindItemWithText(‘查询字串’, True, 0, True)
         ListView1.Focus()
         If Not myList Is Nothing Then
             ListView1.Items.Item(myList.Index).Selected = True
         End If

例2:实现连续查询(这里要定义一个变量,用于保存查询起始的Index值)

Dim myList As New ListViewItem
         Dim myIndex As Integer = 0    ‘myIndex的定义为全局变量
         If myIndex > ListView1.Items.Count - 1 Then myIndex = 0
         myList = ListView1.FindItemWithText(TextBox1.Text.Trim, True, myIndex, CheckBox1.Checked)
         ListView1.Focus()
         ListView1.MultiSelect = False
         If Not myList Is Nothing Then
             ListView1.TopItem = myList
             ListView1.Items.Item(myList.Index).Selected = True
             myIndex = myList.Index + 1
         End If


 

在ListVeiw控件中实现查找、搜索功能,可以利用控件中的FindItemWithText函数来实现,下面先介绍下这个函数的定义

名称说明FindItemWithText(String)查找以指定文本值开头的第一个 ListViewItem。 (继承自 ListView。)FindItemWithText(String, Boolean, Int32)查找以指定文本值开头的第一个 ListViewItem 或 ListViewItem..::.ListViewSubItem(如果指定)。搜索从指定索引处开始。 (继承自 ListView。)FindItemWithText(String, Boolean, Int32, Boolean)查找以指定文本值开头的第一个 ListViewItem 或 ListViewItem..::.ListViewSubItem(如果指定)。搜索从指定索引处开始。 (继承自 ListView。)


参数说明:

  • 第1个参数    要搜索的文本。
  • 第2个参数    在搜索中包含子项时为 true;否则为false。
  • 第3个参数
  • 第4个参数    要将搜索文本与项的前缀相匹配,则为 true;否则为 false。

注意:

  • 如果列表为空或者没有匹配项,FindItemWithText 方法将返回 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。
  • 搜索不区分大小写。
  • text 参数可以指定所需匹配文本的一个子字符串。此方法将返回以指定文本开头的第一个项,除非为isPrefixSearch 传入了false。例如,如果 ListView 包含两个列表项,第一个项的文本设置为“angle bracket”,而第二个项的文本设置为“bracket”,那么,传递“brack”作为搜索文本来调用 FindItemWithText 将返回文本为“bracket”的项。如果isPrefixSearch 设置为false,此调用将返回nullNothingnullptrnull 引用(在 Visual Basic 中为Nothing)。

这里的模糊查找是有限制的,必须是项目头部的字串而不能选择中间或结束部分的字串进行查询操作),当选择False时则为准确查询方式。