Почему я всегда получаю первое выбранное значение из 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();
}