Почему я всегда получаю первое выбранное значение из ListBox, когда я вызываю ListBox.SelectedValue и выбираю элементы в порядке ASC inC#?

Я пытаюсь получить выбранные элементы в порядке их выбора, проблема возникает, когда я выбираю элементы в порядке ASC, я имею в виду сверху вниз, он всегда возвращает первый selectedIndex или значение, и проблема в том, что предметы могут быть выбраны в любом порядке. Элемент управления ListBox имеет параметр SelectionMode, установленный на MultiSimple, и я попытался с MultiExtended безуспешно. Любопытно, что когда я выбираю предметы в обратном порядке снизу вверх, все работает отлично. Я тестировал, читал и искал везде, но пока не работал. ListBox ограничен источником данных.

Работать напрямую с коллекцией можно, потому что она возвращает selectedItems, но я не могу получить элементы в том порядке, в котором они были выбраны.

private void lstEquipos_SelectedIndexChanged(object sender, EventArgs e)
{
    if (lstEquipos.SelectedIndex != -1)
        {
            textBox1.Text = lstEquipos.SelectedIndex.ToString();
        }            
    }
}

2 ответа

Ну, хотя я не нашел объяснения того, почему это происходит, здесь я нашел решение сохранить элементы в том порядке, в котором они были выбраны, stackru.com/a/305601/2722313

Попробуйте использовать SelectedItem вместо:

private void lstEquipos_SelectedIndexChanged(object sender, EventArgs e)
{
    // Get the currently selected item in the list box 
    string currentItem = lstEquipos.SelectedItem.ToString();

    // Find the index of the currently selected item in the list box 
    int index = lstEquipos.FindString(cucurrentItemItem);

    textBox1.Text = index.ToString();
}
Другие вопросы по тегам