从列表视图中删除多个列表项
removing multiple list items from a listview
所以我创建了一个按钮,按下它会删除列表视图中的多个项目。但是,我似乎只能让它一次删除一个列表项。我知道这是措辞不当所以我的代码应该有助于解释我在做什么:
private void button2_Click(object sender, EventArgs e) //remove
{
try
{
foreach ( ListViewItem eachItem in listView1.SelectedItems)
{
listView1.Items.Remove(eachItem);
}
task.RemoveAt(listView1.SelectedItems[0].Index); // Remove task from the list "task"
我试图让它从我的列表视图中删除所有选定的项目以及我的名为 "task" 的列表但是,上面的代码行只允许我一次从列表中删除一个选定的项目.
有什么帮助吗?谢谢
试试这个,
for (int i = task.SelectedItems.Count - 1; i >= 0; i++)
{
if (task.Items[i].Selected)
{
task.Items.Remove(listView2.Items[i]);
}
}
我将假设您的任务列表在项目计数方面与您的 ListView 相同,并且任务[0] 中的对象与 ListView.Items[0] 中的对象相同。如果是,则先从任务中删除项目,然后从 ListView
中删除项目
// Removing items from the bottom of the selected items and working your way up
for (int i = listView1.SelectedIndices.Count - 1; i >= 0; i--)
{
task.RemoveAt(listView1.SelectedIndices[i]);
listView1.Items.RemoveAt(listView1.SelectedIndices[i];
}
每行只能删除一项,
如果您正在枚举不断变化的可枚举对象,则可以使用“.ToArray”扩展方法。
您还应该使用 BeginUpdate / EndUpdate 函数来加快速度
https://msdn.microsoft.com/library/system.windows.forms.listview.beginupdate%28v=vs.110%29.aspx
foreach (ListViewItem eachItem in listView1.Items)
{
listView1.Items.Remove(eachItem);
}
所以我创建了一个按钮,按下它会删除列表视图中的多个项目。但是,我似乎只能让它一次删除一个列表项。我知道这是措辞不当所以我的代码应该有助于解释我在做什么:
private void button2_Click(object sender, EventArgs e) //remove
{
try
{
foreach ( ListViewItem eachItem in listView1.SelectedItems)
{
listView1.Items.Remove(eachItem);
}
task.RemoveAt(listView1.SelectedItems[0].Index); // Remove task from the list "task"
我试图让它从我的列表视图中删除所有选定的项目以及我的名为 "task" 的列表但是,上面的代码行只允许我一次从列表中删除一个选定的项目.
有什么帮助吗?谢谢
试试这个,
for (int i = task.SelectedItems.Count - 1; i >= 0; i++)
{
if (task.Items[i].Selected)
{
task.Items.Remove(listView2.Items[i]);
}
}
我将假设您的任务列表在项目计数方面与您的 ListView 相同,并且任务[0] 中的对象与 ListView.Items[0] 中的对象相同。如果是,则先从任务中删除项目,然后从 ListView
中删除项目// Removing items from the bottom of the selected items and working your way up
for (int i = listView1.SelectedIndices.Count - 1; i >= 0; i--)
{
task.RemoveAt(listView1.SelectedIndices[i]);
listView1.Items.RemoveAt(listView1.SelectedIndices[i];
}
每行只能删除一项,
如果您正在枚举不断变化的可枚举对象,则可以使用“.ToArray”扩展方法。
您还应该使用 BeginUpdate / EndUpdate 函数来加快速度
https://msdn.microsoft.com/library/system.windows.forms.listview.beginupdate%28v=vs.110%29.aspx
foreach (ListViewItem eachItem in listView1.Items)
{
listView1.Items.Remove(eachItem);
}