2

我有一个列表框,我想遍历所有选定的项目并获取每个选定项目的文本值。

for (int i = 0; i < lstFieldNames.selectedItems.Count; i++)
{
string s = lstFieldNames.SelectedItems[i].ToString();
}

s 的值为“{ Item = ADDR }”

我不需要 { Item = },我只需要文本“ADDR”。

我做错了什么,我尝试了一些东西,但似乎没有任何东西对我有用。

4

4 回答 4

2

嗯,这是一个Winforms问题,因为ASP.NETListBox 没有SelectedItems属性(注意复数)。这很重要,因为 WinformsListBox没有像 ASP.NET 中那样的ListItemswithTextValue属性,而只是一个Object.

您还评论说 的数据源ListBox是匿名类型。以后不能将其强制转换为强类型对象。

所以我的建议是创建一个具有您想要的属性的类:

class ListItem {
    public String Item { get; set; }
}

创建它的实例而不是使用匿名类型:

var items = (from i in xDoc.Descendants("ITEM") 
             orderby i.Value 
             select new ListItem(){ Item = i.Element("FIELDNAME").Value })
            .ToList();

现在这有效:

foreach (ListItem i in lstFieldNames.SelectedItems)
{
    String item = i.Item;   
}

请注意,我的ListItem课程不是ASP.NET ListItem.

于 2012-08-23T14:22:15.223 回答
0
string s = lstFieldNames.SelectedItems[i].Text.ToString();

注意Text属性

于 2012-08-23T12:55:33.697 回答
0

使用此代码:

  string s = "";

  foreach(var item in lstFieldNames.SelectedItems) 
  {
     s += item.ToString() + ",";
  }

  textBox1.Text = s;

如果需要从您的列表框中选择一项,请尝试此鳕鱼:

  string s = "";

  foreach(var item in lstFieldNames.SelectedItems) 
  {
     s = item.ToString();
  }

编辑 :

试试这个代码

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string s = "";

        foreach (var item in listBox1.SelectedItems)
        {
            s += item.ToString() + ",";
        }

        textBox1.Text = s;
    }
于 2012-08-23T13:27:00.180 回答
0

这将只获取 Selected 值

编辑:

foreach (object listItem in listBox1.SelectedItems)
{
    string s = listItem.ToString();
}
于 2012-08-23T13:13:17.470 回答