-1

如何使用行的标签 ID 从列表视图中删除一行?

4

3 回答 3

1

这是我做的一个快速功能。它利用了linq。 myTag可以是任何对象。

        string myTag = "aaa";

        List<ListViewItem> lst = listView1.Items.Cast<ListViewItem>().Where(i => i.Tag == myTag).ToList();
        if (lst.Count != 0)
        {
            listView1.Items.Remove(lst.First());
        }
于 2012-12-04T20:41:57.537 回答
1

您可以调用要删除的ListViewItem.Remove方法。ListViewItem

此方法在功能上与包含该项目的 ListView 控件中的 ListView.ListViewItemCollection 的 Remove 方法类似。您可以使用 Remove 方法从其 ListView 控件中删除项目。如果要将项目移动到不同的 ListView 控件或需要根据用户的请求从应用程序中删除项目,则此功能非常有用。

例如,您可以循环浏览 中的所有内容ListViewItemsListView查看TagRemove要删除的项目:

// Create the ListView and ListViewItem.
ListView myList = new ListView();
ListViewItem myItem = new ListViewItem { Tag = "MyTag", Text = "My ListViewItem" };
myList.Items.Add(item);

// Look for the ListViewItem with a Tag of "MyTag" and remove it.
foreach (ListViewItem item in myList.Items) {
    if (String.CompareOrdinal(item.Tag as string, "MyTag") == 0) {
        i.Remove();
        break;
    }
}

此示例在删除第一个匹配项后退出。如果有多个匹配ListViewItems项需要删除,您需要收集这些匹配项,然后再删除它们。

于 2012-12-04T20:28:29.877 回答
0

将来,您应该向社区展示您在问题上付出的努力。你可以告诉我们你尝试了什么,并给我们一些例子。但是,下面是一些应该有助于回答您的问题的代码。

int id = 0;

foreach (ListViewItem item in listView1.Items)
{
   if((int)item.Tag == id)
   {
      item.Remove();
      break;
   }
}

注意:这假设标签是一个整数。如果情况并非总是如此,那么您应该添加代码以防止出现错误。

于 2012-12-04T20:35:25.533 回答