2014-05-15 159 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