список выбранных элементов в winform - PullRequest
2 голосов
/ 14 сентября 2009

У меня есть элементы управления списком, кнопкой и текстовым полем в приложении Windows. Как я могу отобразить несколько выбранных значений в текстовом поле.

это мой код

textBox1.Text = listBox1.SelectedItems.ToString();

но оно отображается в текстовом поле следующим образом: (я выбираю более одного элемента)

System.Windows.Forms.ListBox+Selec. 

пожалуйста, помогите мне

Ответы [ 5 ]

7 голосов
/ 14 сентября 2009

Вы можете сделать что-то вроде:

string text = "";

foreach (System.Data.DataRowView item in listBox1.SelectedItems) {
    text += item.Row.Field<String>(0) + ", ";
}
textBox1.Text = text;
2 голосов
/ 14 сентября 2009

Вам нужно перебрать коллекцию предметов. Что-то вроде:

textBox1.Text = "";
foreach (object o in listBox1.SelectedItems)
   textBox1.Text += (textBox1.Text == "" ? "" :", ") + o.ToString();
1 голос
/ 14 января 2019

Пост довольно старый, но в нем нет правильного общего ответа, который может работать независимо от типа элемента с привязкой к данным, например, для 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 метод расширения.

0 голосов
/ 31 октября 2018

На самом деле, если вы знаете тип объекта, который вы вводите в ListBox, выбранным элементом является этот тип, вот пример: Ввести список FileInfo в ListBox:

        FileInfo[] lFInfo = new DirectoryInfo(textBox1.Text).GetFiles();
        foreach (var i in lFInfo)
            lstFile.Items.Add(i);

Функция копирования для копирования выбранных файлов в путь textBox2.Text:

private void btnCopy_Click(object sender, EventArgs e)
 {
      foreach (FileInfo i in lstFile.SelectedItems)
          File.Copy(i.FullName, Path.Combine(textBox2.Text, i.Name));
  }
0 голосов
/ 14 сентября 2009

ListBox.SelectedItems : возвращает коллекцию выбранных элементов.

Перебрать коллекцию SelectedItems списка.

foreach (ListItem liItem in ListBox1.SelectedItems)
{
    // write your code.   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...