需要帮助循环ListBox的内容

时间:2017-02-04 00:08:12

标签: c# listbox

我有一个用户填充条目的列表框。我正在尝试遍历列表框并获取每个条目的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)

感谢任何帮助。

4 个答案:

答案 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++;
});