2012-04-17 43 views
0

嘿!如何刪除ListView中顯示的特定文本/消息?

我將努力更好地在這裏和我的情況:)

解釋我的問題,我在我的應用程序ListView,這ListView用於輸出錯誤,所以它有點用於錯誤日誌。

我的程序主要是一個計時器,它正在檢查int值的變化。

發生錯誤時我想在列表中顯示它。 問題是,錯誤將被添加,如3-4次,也許更多。

如果我做了檢查if(exist.in.listbox),我將無法第二次添加相同的錯誤。我想要做的是刪除特定的消息/錯誤,然後在其「固定」或不再對系統構成威脅時將其刪除。 這裏是代碼片段:

   if (Convert.ToInt32(x) == 1 && Convert.ToInt32(y) == 1) 
       { 

        found = false; 
        ListViewItem item = new ListViewItem(message); 
        foreach (ListViewItem z in listView1.Items) 
        { 
         if (z.Text == message) 
         { found = true; } 
        } 

        if (found == false) 
        { 
         item.SubItems.Add(now.ToString()); 
         listView1.Items.Add(item); 
         listView1.EnsureVisible(item.Index); 
        } 
       } 
       else 
       { 
        foreach (ListViewItem z in listView1.Items) 
        { 
         if (z.Text == message) 
         { 
          //no longer a threat, delete the message added aboue 
         } 
        } 
       } 

找不到任何關於此。只有「被選擇時 - >刪除行」

可以考慮一下這款像視覺錯誤窗口,當u得到一個紅色的錯誤,ü可以修復code.and它disapair :)

+0

通過使用發現莫比http://msdn.microsoft.com/en-us/library/x0b5b5bc.aspx – 2012-04-17 12:05:06

回答

2

你應該遵循與添加項目時相同的方法。首先,檢查是否要執行刪除操作,然後刪除該項目。你也可以將你的「添加/刪除」邏輯移出ListView(也許保留一個字典以加快查找速度)。如果這樣做效果不好(在每個定時器迭代中迭代兩次)。

void DeleteIfNecessary(string message) 
{ 
    ListViewItem listViewItem = FindListViewItemForMessage(message); 
    if (listViewItem == null) 
    { 
     // item doesn't exist 
     return; 
    } 

    this.listView1.Items.Remove(listViewItem); 
} 

private ListViewItem FindListViewItemForMessage(string s) 
{ 
    foreach (ListViewItem lvi in this.listView1.Items) 
    { 
     if (StringComparer.OrdinalIgnoreCase.Compare(lvi.Text, s) == 0) 
     { 
      return lvi; 
     } 
    } 

    return null; 
} 
+0

我認爲你可以到DeleteMessageIfNecessary調用(消息)加入 – 2012-04-17 12:47:32

+0

IV取代你else子句您現在的代碼,並且打了一個電話來刪除IFN ...但我在哪裏打電話? – 1244 2012-04-17 12:57:50

+0

如果(Convert.ToInt32(X)== 1 && Convert.ToInt32(Y)== 1){ // 不添加如果這裏必要的東西 } 別的 { DeleteIfNecessary(消息); } – 2012-04-17 13:04:57

相關問題