listView.items.find throwing错误;对象引用未设置为对象的实例



这已经困扰了我几个小时。在我添加的每个新的ListViewItem上,我将名称值与之相关联,因此它不会添加两次相同的项目。值是一个URL,我不确定是否是问题?

我遇到的错误是:

对象引用未设置为对象的实例。

完整错误描述:

system.nullReferenceException:对象引用未设置为对象的实例。 由System.Windows.Forms.listView.listViewItemCollection.findinternal(字符串键,boolean searchallSubiTems,listViewItemCollection listViewItems,arrayList urentitems(( at System.Windows.Forms.listView.listViewItemCollection.find(字符串键,布尔sealallsubitems(

这是我的代码:

我在 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

我试图完全不使用名称,但是后来我遇到了一些错误,这些错误已经添加了类似键的东西,我不知道为什么会发生这种情况,因为我没有将任何名称价值与项目相关联。

更新的代码:

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

我不确定为什么会抛出异常,但是您可以尝试尝试 IndexOfKey()方法。它只会迭代,直到找到一个匹配而不是许多匹配。

If ListView2.Items.IndexOfKey(lv.Name) = -1 Then '-1 = no item found.

最新更新