我有一个列表框,我想遍历所有选定的项目并获取每个选定项目的文本值。
for (int i = 0; i < lstFieldNames.selectedItems.Count; i++)
{
string s = lstFieldNames.SelectedItems[i].ToString();
}
s 的值为“{ Item = ADDR }”
我不需要 { Item = },我只需要文本“ADDR”。
我做错了什么,我尝试了一些东西,但似乎没有任何东西对我有用。
我有一个列表框,我想遍历所有选定的项目并获取每个选定项目的文本值。
for (int i = 0; i < lstFieldNames.selectedItems.Count; i++)
{
string s = lstFieldNames.SelectedItems[i].ToString();
}
s 的值为“{ Item = ADDR }”
我不需要 { Item = },我只需要文本“ADDR”。
我做错了什么,我尝试了一些东西,但似乎没有任何东西对我有用。
嗯,这是一个Winforms
问题,因为ASP.NET
ListBox 没有SelectedItems
属性(注意复数)。这很重要,因为 WinformsListBox
没有像 ASP.NET 中那样的ListItems
withText
和Value
属性,而只是一个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
.
string s = lstFieldNames.SelectedItems[i].Text.ToString();
注意Text
属性
使用此代码:
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;
}
这将只获取 Selected 值。
编辑:
foreach (object listItem in listBox1.SelectedItems)
{
string s = listItem.ToString();
}