Смотрите порядок множественного выбора в ListBox C# WinForms

Может кто-нибудь сказать мне, как я могу увидеть выбранный порядок intems в списке в C#? Например, если у меня есть эти элементы в списке:

Item1 Item2 Item3 Item4 Item5

и я выбираю в этом порядке Item4, Item2 и Item5, мне нужен способ узнать, как эти элементы были выбраны в указанном порядке.

Спасибо!

2 ответа

Возможно, получит индекс выбранного элемента и, возможно, добавит его в массив?

Расширение немного в идее Рудольфа, используя List<T>:

List<int> selected = new List<int>();

Вы можете следить за выбранными пунктами:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    // add new selection:
    foreach (int index in listBox1.SelectedIndices) 
            if (!selected.Contains(index)) selected.Add(index);
    // remove unselected items:
    for (int i = selected.Count - 1; i >= 0; i-- ) 
        if (!listBox1.SelectedIndices.Contains(selected[i])) selected.Remove(i);
}

Для проверки вы можете написать:

for (int i = 0; i < selected.Count; i++) 
   Console.WriteLine("Item # " selected[i] + ": " + listBox1.Items[selected[i]]);

Обратите внимание, что при использовании расширенной опции множественного выбора вы получите обычный, немного странный порядок выбора Windows.

Другие вопросы по тегам