Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 20.08.2014
Сообщений: 6
1

Перевести выбранные элементы ListBox в строку

10.10.2014, 11:02. Показов 4393. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно перевести выбранные элементы из listbox в строку.
Кусок кода:
C#
1
2
3
4
5
6
string str = string.Empty;
 
            if (lb.SelectedItems.Count == 0) return;
            foreach (string s in lb.SelectedItems)
                str += s + " ";
            dbgList.Text = str;
Во время отладки пишет, "Не удалось привести тип объекта "System.Windows.Controls.ListBoxItem" к типу "System.String"." Может это из за того, что я работаю в Silverlight, но там вроде должно быть так же как и WinForms. Или я ошибаюсь?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2014, 11:02
Ответы с готовыми решениями:

Показать все выбранные элементы ListBox
Как показать все выбранные элементы ListBox в Label?

Добавить файлы выбранные в OpenFileDialog в ListBox?
Имеется на форме ListBox, куда по кнопке "Добавить файл" (через OpenDialog) добавляются...

Как скопировать в буфер обмена выбранные записи в listbox?
Всем привет. Есть Listbox с записями. Как скопировать при нажатии на кнопку все записи,...

Почему не соотносит выбранные из ListBox и введенные в TextBox данные в выходном файле?
Почему не соотносит выбранные из ListBox и введенные в TextBox данные в выходном файле? Private...

6
76 / 77 / 40
Регистрация: 03.06.2014
Сообщений: 463
10.10.2014, 11:06 2
а через фор?
C#
1
2
string str = "";
for(int i=0;i<lb.SelectedItems.Count;i++){str +=lb.SelectedItems[i]+" ";}
а можно даже так
C#
1
for(int i=0;i<lb.SelectedItems.Count;i++){dbgList.Text+=lb.SelectedItems[i]+" ";}
0
120 / 101 / 9
Регистрация: 12.06.2012
Сообщений: 322
Записей в блоге: 12
10.10.2014, 11:10 3
Свойство lb.SelectedItems имеет тип SelectedListViewItemCollection. Элементом этой коллекции является тип ListViewItem (а не string), т.е. должно быть вот так
C#
1
foreach (ListViewItem s in lb.SelectedItems)
Ну а уже дальше из переменной типа ListViewItem берете свойство Text, там хранится заголовок элемента.
0
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
10.10.2014, 11:10 4
listBox1.SelectedItems это коллекция List.SelectedObjectCollection, вы не можете обращатся к элементу этой коллекции как к типу string о_О
0
76 / 77 / 40
Регистрация: 03.06.2014
Сообщений: 463
10.10.2014, 11:18 5
Цитата Сообщение от xZooYx Посмотреть сообщение
Ну а уже дальше из переменной типа ListViewItem берете свойство Text, там хранится заголовок элемента.
C#
1
for(int i=0;i<lb.SelectedItems.Count;i++){dbgList.Text+=lb.SelectedItems[i].Text+" ";}
Добавлено через 15 секунд
Цитата Сообщение от xZooYx Посмотреть сообщение
Ну а уже дальше из переменной типа ListViewItem берете свойство Text, там хранится заголовок элемента.
C#
1
for(int i=0;i<lb.SelectedItems.Count;i++){dbgList.Text+=lb.SelectedItems[i].Text+" ";}
0
653 / 589 / 171
Регистрация: 17.07.2012
Сообщений: 1,670
Записей в блоге: 1
10.10.2014, 11:46 6
Лучший ответ Сообщение было отмечено kosig как решение

Решение

C#
1
var result = String.Join(" ", listBox.SelectedItems.Cast<string>());
И как всегда, заметил что Silverlight только после ответа...Только вот что делает вопрос про Silverlight в WinForms - не понятно.

Ответ актуален для WinForms ListBox'а.

Добавлено через 9 минут
Приводите объект к ListBoxItem, у него тащите текст из Content...если текст в контенте, конечно.
C#
1
2
foreach (ListBoxItem s in lb.SelectedItems)
     str += s.Content + " ";
Добавлено через 3 минуты
Должно работать:
C#
1
2
var listBox = new System.Windows.Controls.ListBox();
var result = String.Join(" ", listBox.SelectedItems.Cast<System.Windows.Controls.ListBoxItem>().Select(x => x.Content));
1
0 / 0 / 0
Регистрация: 20.08.2014
Сообщений: 6
10.10.2014, 12:37  [ТС] 7
спасибо. код действительно рабочий. действительно наверное это из за SilverLight, просто не думал в этом есть отличие от WinForms
0
10.10.2014, 12:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2014, 12:37
Помогаю со студенческими работами здесь

CheckBoxList - выбранные элементы
Добрый вечер! Прошу Вашей помощи, т.к. не хватает уже нервов (а если более честно мозгов) для...

Выбранные элементы Listboxa
Добрый день. На форме имеются 2 listbox. Как сделать так чтобы при нажатии на один, потом на...

Обработать вектор, отобразив элементы по восемь слов на строку, перевести символы элементов в верхний регистр
Здравствуйте. Такая задача: Прочитайте последовательность слов из потока cin и сохраните их в...

Как удалить выбранные элементы из БД?
Как удалить выбранные элементы из БД...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru