我有一个用户填充条目的列表框。我正在尝试遍历列表框并获取每个条目的SelectedIndex和Value但我收到错误:
无法将“System.String”类型的对象强制转换为类型 'System.Windows.Forms.ListBox'
表单上的列表框名为listEvents。
这就是我所拥有的:
foreach (ListBox item in listEvents.Items)
{
string eventName = item.Text;
int index = item.SelectedIndex;
//do some stuff with these variables
}
我尝试过使用ListViewItem而不是Listbox,但这也不起作用(我必须将item.SelectedIndex更改为item.Index,而listEvents列表框控件没有Index属性,只有SelectedIndex)
感谢任何帮助。
答案 0 :(得分:1)
没有方法来指定项目的索引,但是你可以获得它的价值。
foreach (ListItem item in listEvents.Items)
{
string eventName = item.Text;
string value = item.Value;
}
答案 1 :(得分:0)
int index = listEvents.SelectedIndex;
foreach (object item in listEvents.Items){
string eventName = (string)item;
// ...
}
答案 2 :(得分:0)
如果您希望每个项目的索引只使用for
循环:
for(int i = 0; i < listEvents.Items.Count; i++)
{
string value = listEvents.Items[i].ToString();
// or object value = listEvents.Items[i]; if the listbox is bound to a collection of objects.
...
}
答案 3 :(得分:-1)
或试试这个。凌乱的代码,但得到你需要的索引。
listEvents.Items.Cast<object>().ToList().ForEach(li => {
int i = 0;
string eventName = li.ToString();
int index = 0;
i++;
});