簡體   English   中英

如何從列表視圖中刪除選定的行

[英]How to remove selected rows from a listView

我想在檢查特定字符串后從列表視圖中刪除行。 如果文本框中的字符串與列表視圖中的字符串匹配,則保留該行,否則刪除該行。 2 foreach循環和if語句的頂部工作正常,但是else部分卻給我帶來了問題。...我不確定如何編寫它。

提前致謝

到目前為止的代碼:

foreach (ListViewItem item in listView1.Items)
{
    foreach (ListViewItem.ListViewSubItem subItem in item.SubItems)
    {
        if (subItem.Text.ToLower().StartsWith(textBox1.Text.ToLower()))
        {
            var index = item.Index;
            MessageBox.Show(listView1.Items[index].ToString());
            count++;
        }
        else
        {
            listView1.Items[item].Remove();
        }               
    }   
}        

在其他部分中使用item.Index代替item

已更正:listView1.Items [item.Index]

您可以在新列表中添加匹配項,而不是像這樣從當前循環中刪除項:-

        listView1.Items newItemList = new listView1.Items();
        foreach (ListViewItem item in listView1.Items)
        {
            foreach (ListViewItem.ListViewSubItem subItem in item.SubItems)
            {
                if (subItem.Text.ToLower().StartsWith(textBox1.Text.ToLower()))
                {
                    var index = item.Index;
                    MessageBox.Show(listView1.Items[index].ToString());
                    count++;

                    newItemList.Add(item); 

                }
                else
                {
                    //listView1.Items[item].Remove(); 
                }
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM