此代码无效。它不会引发异常,甚至不会做任何可见的事情。
private void RemoveSelectedFiles()
{
lstPhotos.Items.Remove(lstPhotos.SelectedItems);
}
如何从ListBox中删除所选项?
答案 0 :(得分:1)
您必须一次删除一个项目。
编辑 - 正如@Smith指出的那样,代码会引发异常,因为ListBox.SelectedItems
绑定到Items
集合。从Items
中移除所选项目也会有效地将其从SelectedItems
中删除,从而破坏了枚举。现在我们枚举一个包含所选项目的独立列表:
private void RemoveSelectedFiles()
{
var selectedItems = new List<object>(lstPhotos.SelectedItems);
foreach (object item in selectedItems)
lstPhotos.Items.Remove(item);
}