Пост довольно старый, но в нем нет правильного общего ответа, который может
работать независимо от типа элемента с привязкой к данным, например, для List<T>
,
DataTable
, или может работать независимо от настройки или не настройки
DisplayMember
.
Правильный способ получения текста элемента в ListBox
или ComboBox
- это метод GetItemText
.
Неважно, какой тип элемента, если вы использовали DataSource
и DisplayMember
, он использует DisplayMember
для возврата текста, в противном случае он использует ToString
метод элемента.
Например, чтобы получить список выбранных текстов элементов через запятую:
var texts = this.listBox1.SelectedItems.Cast<object>()
.Select(x => this.listBox1.GetItemText(x));
MessageBox.Show(string.Join(",", texts));
Примечание: Для тех, кто ищет выбранные значения элемента, а не тексты выбранного элемента независимо от типа элемента и поля элемента значения, они используют GetItemValue
метод расширения.