我有一个ListBox
,列出了目录中的所有.mp3
文件。该程序允许用户轻松选择其中一些.mp3
文件并编辑ID3标签(文件属性-如艺术家,专辑,标题等)。但是,我找不到一种方法来获取用户选择的 all 个项目的数组,而不仅仅是一个。
我已经看到了如何获得一个选定的项目(listBox.SelectedValue
),但是当我在选择模式属性中使用MultiSimple
时,我经常会有多个选定的项目(允许我选择多个项目而不是一个)。据我所知,无法进行类似listBox.SelectedValue[2]
或listBox.Item.IndexOf(2).Selected()
的操作。
string[] selectedItems = new string[allMusicBox.SelectedItems.Count];
// A count of how many items have been added to the selected items array
int addedSelectedItems = 0;
for (int i = 0; i < allMusicBox.Items.Count; i++) {
if (allMusicBox.Items.IndexOf(i).Selected) {
selectedItems[addedSelectedItems] = allMusicBox.Items.IndexOf(i).ToString();
addedSelectedItems++;
}
}
那边的代码实际上不起作用,但这符合我所寻找的内容。我想知道如何检查是否选中了该项目(在“ i”位置),然后将其添加到“ selectedItems”数组中。
答案 0 :(得分:2)
SelectedItems
属性是所有选定项的集合。您无需遍历所有项目即可查看它们是否被选中,因为您可以使用allMusicBox.SelectedItems
。
如果您确实需要将收藏集转换为列表,请查看此SO问题/答案Fastest Convert from Collection to List<T>
答案 1 :(得分:0)
我认为您需要查看SelectedItems属性:
foreach (var item in listBox1.SelectedItems)
{
Console.WriteLine(item);
}