更改列表视图的文本

时间:2012-11-22 01:10:02

标签: c# winforms listview

我有一个关于listView的快速问题以及如何检查ListView(包含空项)是否具有某个字符串?

以下是添加到特定项目的代码(在listView的第5列下)。它基本上会检查该项目是否出现在Google搜索中。如果是,它会对该特定行写“是”,如果不是,则将其留空:

string google2 = http.get("https://www.google.com/search?q=" + textBox1.Text + "");
                string[] embedid = getBetweenAll(vid, "type='text/html' href='http://www.youtube.com/watch?v=", "&feature=youtube_gdata'/>");

                for (int i = 0; i < embedid.Length; i++)
                {

                    if (google2.Contains(embedid[i]))
                    {
                        listView1.Items[i].SubItems.Add("Yes");
                        }
                    }

现在我要做的是检查某个列是否包含说“是”的项目。如果它确实给它们上色,如果没有那么。

以下是代码:

 if (i.SubItems[5].Text.Contains("Yes"))
                        {
                            labelContainsVideo.ForeColor = System.Drawing.Color.Green;
                        }

我的问题是我一直收到InvalidArgument=Value of '5' is not valid for 'index'.

的错误消息

我的预感是第5列中有空项目可能会弄乱它,但我不知道。

有关如何解决这个问题的想法吗?

1 个答案:

答案 0 :(得分:1)

检查项目以查看SubItem Collection是否具有正确的值数。

int threshold = 5;

foreach (ListViewItem item in listView1.Items)
{
    if (item.SubItems.Count > threshold)
    {
        if (item.SubItems[5].Text.Contains("Yes"))
        {
            // Do your work here
        }
    }
}