如何使用行的标签 ID 从列表视图中删除一行?
问问题
646 次
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 控件或需要根据用户的请求从应用程序中删除项目,则此功能非常有用。
例如,您可以循环浏览 中的所有内容ListViewItems
,ListView
查看Tag
和Remove
要删除的项目:
// 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 回答