Получение значения выбранного элемента в списке в виде строки

Я пытаюсь получить значение выбранного элемента в списке, используя следующий код, но он всегда возвращает нулевую строку.

DataSet ds = searchforPrice(Convert.ToString(listBox1.SelectedItem));

Здесь я пытаюсь передать значение выбранного элемента в виде строки методу searchforPrice для извлечения набора данных из базы данных.

Как я могу извлечь значение выбранного элемента в виде строки?

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

 listBox1.Items.Add(comboBox2.Text);

enter image description here

У кого-то есть ответ на этот вопрос.

Ответы

Ответ 1

Если вы хотите получить отображаемый текст элемента, используйте метод GetItemText:

string text = listBox1.GetItemText(listBox1.SelectedItem);

Ответ 2

Если вы используете ListBox в своем приложении и хотите вернуть выбранное значение ListBox и отобразить его в ярлыке или что-то еще, используйте этот код, это поможет вам

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
         label1.Text  = listBox1.SelectedItem.ToString();
    }

Ответ 3

Чтобы получить значение всего выбранного элемента в списке, вы можете отбросить выбранный элемент в DataRowView, а затем выбрать столбец, в котором находятся ваши данные:

foreach(object element in listbox.SelectedItems) {
    DataRowView row = (DataRowView)element;
    MessageBox.Show(row[0]);
}

Ответ 4

string textValue = ((ListBoxItem)listBox1.SelectedItem).Content.ToString();

Ответ 5

Если вы хотите получить свое значение из списка вы должны попробовать следующее:

String itemSelected = numberListBox.GetItemText(numberListBox.SelectedItem);

Ответ 6

Получить FullName в списке ListBox файлов (полный путь) (Thomas Levesque ответить modificaton, спасибо Thomas):

...
        string tmpStr = "";
        foreach (var item in listBoxFiles.SelectedItems)
        {
            tmpStr += listBoxFiles.GetItemText(item) + "\n";
        }
        MessageBox.Show(tmpStr);
...

Ответ 7

Вы можете использовать это. Чтобы получить выбранное имя ListItme::

String selectedItem = ((ListBoxItem)ListBox.SelectedItem).Name.ToString();

Убедитесь, что каждый элемент ListBoxItem имеет свойство Name

Ответ 8

enter  private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
     label1.Text  = listBox1.SelectedItem.ToString();
}here

Что делать, если вы щелкните по списку в окне, чтобы отобразить значения в том же месте, конечно.

Ответ 9

Разрабатывая предыдущий ответ пира Фахима, он прав, но я использую selectedItem.Text (единственный способ заставить его работать на меня)

Используйте событие SelectedIndexChanged(), чтобы где-то хранить данные. В моем случае я обычно заполняю пользовательский класс, например:

class myItem {
    string name {get; set;}
    string price {get; set;}
    string desc {get; set;}
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
     myItem selected_item = new myItem();
     selected_item.name  = listBox1.SelectedItem.Text;
     Retrieve (selected_item.name);
}

А затем вы можете получить остальные данные из списка "myItems"..

myItem Retrieve (string wanted_item) {
    foreach (myItem item in my_items_list) {
        if (item.name == wanted_item) {
               // This is the selected item
               return item; 
        }
    }
    return null;
}

Ответ 10

Если вы хотите получить элемент, выбранный из списка, вот код...

String SelectedItem = listBox1.SelectedItem.Value;

Ответ 11

Правильное решение выглядит следующим образом:

string text = ((ListBoxItem)ListBox1.SelectedItem).Content.ToString();

Пожалуйста, не забудьте использовать .Content, а не .Name.