如何从listView中删除选定的行

时间:2017-11-29 10:48:08

标签: c# 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();
        }               
    }   
}        

1 个答案:

答案 0 :(得分:0)

您可以在新列表中添加匹配项目,而不是像以下那样从当前循环中删除项目: -

        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(); 
                }
            }
        }