【发布时间】:2018-12-21 20:56:05
【问题描述】:
我有一个ListBox,它列出了一个目录中的所有.mp3 文件。该程序允许用户选择其中一些.mp3 文件并轻松编辑 ID3 标签(文件属性 - 如艺术家、专辑、标题等)。但是,我找不到获取所有用户选择的项目的数组的方法,而不仅仅是一个。
我已经看到了如何获得一个选定的项目 (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”数组中。
【问题讨论】:
-
获取所有选定项目的文本:
allMusicBox.SelectedItems.Cast<Object>().Select(x=>allMusicBox.GetItemText(x)).ToArray()