У меня есть ListBox в WinForm с включенным multiselect.Получение выбранных элементов из WinForm ListBox?
Выбранные элементы, как представляется, хранятся в объекте, как я могу получить их значения?
У меня есть ListBox в WinForm с включенным multiselect.Получение выбранных элементов из WinForm ListBox?
Выбранные элементы, как представляется, хранятся в объекте, как я могу получить их значения?
легко, в зависимости от того, какого типа вы сохранили:
foreach (MyItemType item in listBox1.SelectedItems)
{
...
}
Потому что это старый, не общий сбор, лучше не использовать var
объявить переменный пункт. Это даст вам только ссылку типа object
.
Вы также можете использовать другие свойства, как:
if (listBox1.SelectedItems.Count > 0)
...
Попробуйте свойство SelectedItems.
foreach (var selectedItem in listBox1.SelectedItems)
{
...
}
Выбранные элементы находятся в SelectedItems
собственности. Это объекты, которые были добавлены в окно списка, так что вы можете бросить объекты их соответствующего типа и доступ к любым членам таким образом:
// get the first selected item, cast it to MyClass
MyClass item = listBox.SelectedItems[0] as MyClass;
if (item != null)
{
// use item here
}
Просто используйте следующий код для отображения выбранного элемента из выпадающего списка - для приложения WinForm ...
string s = listbox1.Text; // заменим listbox1 на ваш элемент управления списком
Это позволит получить первый/единственный выбор, но по-прежнему необходимо проверить размер коллекции 'SelectedItems', иначе выбор не сделает этот индекс throw за пределами. –
@Jon: вы, конечно, правы. Мой ответ не является попыткой стать полным руководством о том, как использовать свойство 'SelectedItems', а скорее отвечать на вопрос * Выбранные элементы, как представляется, хранятся в объекте, как я могу получить их значения *. –
Достаточно справедливо. Я просто хотел добавить небольшое предупреждение для всех, кто хотел бы скопировать/вставить этот код. –