Как я могу получить массив всех выбранных элементов в ListBox? - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть 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.

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Я думаю, вам нужно взглянуть на свойство SelectedItems:

    foreach (var item in listBox1.SelectedItems)
    {
        Console.WriteLine(item);
    }
0 голосов
/ 22 декабря 2018

Свойство SelectedItems представляет собой коллекцию всех выбранных элементов.Вам не нужно перебирать все элементы, чтобы увидеть, выбраны ли они, так как вы можете просто использовать allMusicBox.SelectedItems.

Вот MS docn

Если вам действительно нужно преобразовать коллекцию в список, то посмотрите этот вопрос / ответ Самый быстрый конвертирование из коллекциик списку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...