2012-11-22 89 views
1

我有一個關於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

檢查項目以查看SubItem集合是否具有正確的數值。

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 
     } 
    } 
} 
+0

InvalidArgument =的 '5' 值是無效的 '索引'。 您是否認爲如果我們循環訪問第5列,並且如果它不包含視頻而不是將其留空,則我們放置一個空間或其他東西,然後當我們檢查它是否包含yes或yes時,我們將其替換? –

+0

@EdwinTorres你有多少個子項目,我在這個想法下工作(顯然是錯誤的),你有不超過5個子項目 –

+0

我只有5列,我需要所有這些去列5。子項數量取決於Google搜索上顯示的視頻數量。如果某個視頻出現在Google上,那麼它會在該行中顯示「是」。有多少'是的出現取決於。這可以從小到1或5等等。 –