Ответ 1
Если вы хотите получить отображаемый текст элемента, используйте метод GetItemText
:
string text = listBox1.GetItemText(listBox1.SelectedItem);
Я пытаюсь получить значение выбранного элемента в списке, используя следующий код, но он всегда возвращает нулевую строку.
DataSet ds = searchforPrice(Convert.ToString(listBox1.SelectedItem));
Здесь я пытаюсь передать значение выбранного элемента в виде строки методу searchforPrice для извлечения набора данных из базы данных.
Как я могу извлечь значение выбранного элемента в виде строки?
Я добавляю элементы в список из поля со списком, который, в свою очередь, загружает элементы из базы данных.
listBox1.Items.Add(comboBox2.Text);
У кого-то есть ответ на этот вопрос.
Если вы хотите получить отображаемый текст элемента, используйте метод GetItemText
:
string text = listBox1.GetItemText(listBox1.SelectedItem);
Если вы используете ListBox в своем приложении и хотите вернуть выбранное значение ListBox и отобразить его в ярлыке или что-то еще, используйте этот код, это поможет вам
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = listBox1.SelectedItem.ToString();
}
Чтобы получить значение всего выбранного элемента в списке, вы можете отбросить выбранный элемент в DataRowView, а затем выбрать столбец, в котором находятся ваши данные:
foreach(object element in listbox.SelectedItems) {
DataRowView row = (DataRowView)element;
MessageBox.Show(row[0]);
}
string textValue = ((ListBoxItem)listBox1.SelectedItem).Content.ToString();
Если вы хотите получить свое значение из списка вы должны попробовать следующее:
String itemSelected = numberListBox.GetItemText(numberListBox.SelectedItem);
Получить FullName в списке ListBox файлов (полный путь) (Thomas Levesque ответить modificaton, спасибо Thomas):
...
string tmpStr = "";
foreach (var item in listBoxFiles.SelectedItems)
{
tmpStr += listBoxFiles.GetItemText(item) + "\n";
}
MessageBox.Show(tmpStr);
...
Вы можете использовать это. Чтобы получить выбранное имя ListItme::
String selectedItem = ((ListBoxItem)ListBox.SelectedItem).Name.ToString();
Убедитесь, что каждый элемент ListBoxItem имеет свойство Name
enter private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = listBox1.SelectedItem.ToString();
}here
Что делать, если вы щелкните по списку в окне, чтобы отобразить значения в том же месте, конечно.
Разрабатывая предыдущий ответ пира Фахима, он прав, но я использую 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;
}
Если вы хотите получить элемент, выбранный из списка, вот код...
String SelectedItem = listBox1.SelectedItem.Value;
Правильное решение выглядит следующим образом:
string text = ((ListBoxItem)ListBox1.SelectedItem).Content.ToString();
Пожалуйста, не забудьте использовать .Content, а не .Name.