我有一个列表框,我想遍历所有选定的项目并获取每个选定的项目文本值。
for (int i = 0; i < lstFieldNames.selectedItems.Count; i++)
{
string s = lstFieldNames.SelectedItems[i].ToString();
}
s的值是“{Item = ADDR}”
我不需要{Item =},我只想要文本“ADDR”。
我做错了什么,我尝试了一些事情似乎没有什么对我有用。
答案 0 :(得分:2)
嗯,这是一个Winforms
问题,因为ASP.NET
ListBox没有SelectedItems
属性(注意复数)。这很重要,因为Winforms ListBox
没有ListItems
Text
和Value
属性,就像在ASP.NET中一样,而只是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
。
答案 1 :(得分:0)
string s = lstFieldNames.SelectedItems[i].Text.ToString();
请注意Text
属性
答案 2 :(得分:0)
这将获取仅选定值。
修改强>
foreach (object listItem in listBox1.SelectedItems)
{
string s = listItem.ToString();
}
答案 3 :(得分: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;
}