将列表框中所选项的值作为字符串获取

时间:2013-02-21 13:10:40

标签: c# winforms listbox

我试图使用下面的代码获取列表框中所选项目的值,但它总是返回空字符串。

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

这里我试图将所选项目的值作为字符串传递给方法searchforPrice以从数据库中检索数据集。

如何将所选项目的值作为字符串进行检索?

我正在从组合框添加项目到列表框,然后组合框加载数据库中的项目。

 listBox1.Items.Add(comboBox2.Text);

enter image description here

任何人都有这个答案..

10 个答案:

答案 0 :(得分:70)

如果要检索项目的显示文本,请使用GetItemText方法:

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

答案 1 :(得分:8)

如果您在应用程序中使用ListBox并且想要返回ListBox的选定值并将其显示在Label或其他任何内容中,那么使用此代码,它将帮助您

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

答案 2 :(得分:1)

要检索àlistbox中所有选定项目的值,您可以在DataRowView中转换所选项目,然后选择数据所在的列:

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

如果要从列表框中检索值 你应该试试这个:

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

答案 5 :(得分:0)

在文件列表框中获取FullName(完整路径)列表(Thomas Levesque回答修改,感谢Thomas):

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

答案 6 :(得分:0)

您可以使用此选项获取所选的ListItme Name ::

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

确保您的每个ListBoxItem都具有Name属性

答案 7 :(得分:0)

详细说明了皮尔·法希姆(Pir Fahim)先前的回答,他是对的,但我使用的是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;
}

答案 8 :(得分:-1)

如果你想检索从列表框中选择的项目,这里是代码......

String SelectedItem = listBox1.SelectedItem.Value;

答案 9 :(得分:-1)

正确的解决方案似乎是:

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

请确保使用。内容,而不要使用。名称