c# - 如何获取 ListBox 中所有选定项目的数组?
问题描述
我有一个ListBox
列出目录中所有.mp3
文件的列表。该程序允许用户选择其中一些.mp3
文件并轻松编辑 ID3 标签(文件属性 - 如艺术家、专辑、标题等)。但是,我找不到获取用户选择的所有项目的数组的方法,而不仅仅是一个。
我已经了解了如何获取一个选定的项目 ( listBox.SelectedValue
),但是当我用于选择模式属性时,我通常会拥有多个选定的项目MultiSimple
(允许我选择多个项目而不仅仅是一个)。据我所知,没有办法做类似listBox.SelectedValue[2]
or的事情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”数组中。
解决方案
该SelectedItems
属性是所有选定项的集合。您无需遍历所有项目以查看它们是否被选中,因为您只需使用allMusicBox.SelectedItems
.
如果您确实需要将集合转换为列表,请查看此 SO question/answer Fastest Convert from Collection to List<T>
推荐阅读
- python - 从数据转换为图形坐标
- python - 以列表列表为值过滤字典
- javascript - 未从 html 按钮单击事件调用的 java 脚本函数
- django - Django 管理表单处理文件上传:“InMemoryUploadedFile”对象没有属性“宽度”
- java - 使用 CorsFilter 和 spring security 时出现 Cors 错误
- php - 动态 301 重定向
- javascript - 在反应中更新 JS 状态对象的最佳路径
- spring-boot - 在 SpringBoot Web 响应中返回空字符串而不是 null
- python - 如何在每次更新中为表单设置默认值?
- spring - 使用 Spring Hibernate 持久化嵌套注释的问题