1

所以这是我拥有的代码,允许我删除列表框中的选定项目。

    ListBox.SelectedObjectCollection selectedItems = new ListBox.SelectedObjectCollection(lstOutput);
    selectedItems = lstOutput.SelectedItems;

    if (lstOutput.SelectedIndex != -1)
    {
        for (int i = selectedItems.Count - 1; i >= 0; i--)
            lstOutput.Items.Remove(selectedItems[i]);
    }
    else
        MessageBox.Show("Debe seleccionar un email");

问题是我在顶部有显示输出的标签。我在页面底部也有统计数据。现在的代码方式,我可以删除那些我不想要的。我不确定如何防止这些被删除。

4

1 回答 1

1

首先不需要火线,您可以将两条第一线合并为:

ListBox.SelectedObjectCollection selectedItems = lstOutput.SelectedItems;

现在删除您要保留的项目。你可以提出条件。

for (int i = selectedItems.Count - 1; i >= 0; i--)
{
     if(selectedItems[i] is /*here is where you come and check if the current selected item is of the type you don't want to delete*/)
            lstOutput.Items.Remove(selectedItems[i]);
}

如果你告诉我“顶部标签”和“底部统计信息”的类型是什么,我会把它放在答案中

编辑

与您所说的类似,您可以执行以下操作:

List<object> fixedItems = new List<object>();
fixedItems.Add(/*Your labels and statistics*/);

然后做

for (int i = selectedItems.Count - 1; i >= 0; i--)
{
     if(fixedItems.Contains(selectedItems[i]) == false)
            lstOutput.Items.Remove(selectedItems[i]);
}

对于您需要添加的列表

using System.Collections.Generic;

在页面的开头

于 2013-09-16T08:11:30.627 回答