這已經讓我煩惱了幾個小時。在我添加的每個新的ListViewItem
上,我將一個名稱值與它關聯,所以它不添加兩個相同的項目。該值是一個URL,我不確定是否可能是這個問題?ListView.Items.Find拋出錯誤;對象引用未設置爲對象的實例
我得到的錯誤是:
的對象引用未設置爲一個對象的實例。
完整的錯誤描述:
System.NullReferenceException:該對象的引用不設置爲一個對象的一個實例。 通過System.Windows.Forms.ListView.ListViewItemCollection.FindInternal(String鍵,布爾searchAllSubItems,ListViewItemCollection listViewItems,ArrayList的foundItems) 在System.Windows.Forms.ListView.ListViewItemCollection.Find(String鍵,布爾searchAllSubItems)
這裏是我的代碼:
我在If Not ListView2.Items.Find(lv.Name, False).Count >= 1 Then
Dim m_url As String = HttpUtility.HtmlDecode(matchUrl)
m_url = m_url.Replace(" ", "")
If Not m_url.Contains(rootdomain) Then
Dim lv As New ListViewItem
lv.Name = m_url
If Not ListView2.Items.Find(lv.Name, False).Count >= 1 Then
lv.Text = m_url
lv.SubItems.Add(StripTags(match.Groups(2).Value))
lv.SubItems.Add("")
ListView2.Items.Add(lv)
End If
e_links_c += 1
End If
我試着不使用名稱在所有得到的錯誤,但後來我得到了一些錯誤,其中s像是已經添加了關鍵字的東西,我不知道爲什麼會出現這種情況,因爲我沒有將任何名稱值與項目相關聯。
更新代碼:
Dim lv As New ListViewItem(m_url)
lv.Name = m_url
If ListView2.Items.IndexOfKey(lv.Name) = -1 Then
lv.SubItems.Add(StripTags(match.Groups(2).Value))
lv.SubItems.Add("")
ListView2.Items.Add(lv)
End If
它說-1是一個無效的參數。 – Anders
@Anders:你能給我一個截圖嗎? –
這是一個奇怪的人,它不再說了。請參閱上面我已經更新的代碼,但它仍然給我:System.NullReferenceException:對象引用未設置爲對象的實例 – Anders