2014-05-15 119 views
0

我想创建一个循环,通过子项目读取我的ListView上的信息,以查找与我的文本框中的文本匹配的文本,只要我点击搜索按钮并将列表框聚焦到匹配的文本。以下是我的,但它一直告诉我,字符串的价值不能转换。我也很确定我的数字不会正确循环,但我不确定如何使它们无休止地循环到声明的结尾。如何在列表视图中搜索

Dim T As String 
    T = Lines.Text 
    For r As Integer = 0 to -1 
     For C As Integer = 0 to -1 
      If List.Items(r).SubItems(C).Text = Lines.Text Then 
       List.FocusedItem = T 
      End If 
     Next 
    Next 

End Sub 
+0

昨天的问题转贴[如何获取列表视图选择的项目](http://stackoverflow.com/questions/23662463/how-to-get-listview-selected-item) – Plutonix

回答

0

而不是通过ListView控件循环这样的,请尝试使用一个For Each而不是:

searchstring as String = "test1b" 
ListView1.SelectedIndices.Clear() 
For Each lvi As ListViewItem In ListView1.Items 
    For Each lvisub As ListViewItem.ListViewSubItem In lvi.SubItems 
     If lvisub.Text = searchstring Then 
      ListView1.SelectedIndices.Add(lvi.Index) 
      Exit For 
     End If 
    Next 
Next 
ListView1.Focus() 

这将选择每一个其必须在子项文本匹配的项目。 不要把这段代码放在一个表单加载处理程序中,它不会将焦点放到列表视图上,并且所选项目不会显示。改为使用按钮点击处理程序。

+0

我有我所有的编码到一个按钮搜索输入到文本框中的内容; “Searchstring as string”的顶部行不起作用,除非我在开​​头添加DIM,但我认为这是它的预期目的。将“test1b”切换为Lines.text(因为Lines是我的文本框的名称),那么这个作品完美无瑕,谢谢你,我一直在为此工作了大约3天,只是无法做到它! – user3598883