我正在尝试使用listbox(lb)选择控制c#中线图上显示的系列。
private void lbSERIES_SelectedIndexChanged(object sender, EventArgs e)
{
int item_count = 0;
foreach (var item in lbSERIES.Items)
{
if (lbSERIES.SelectedItems.Contains(item))
{
chart1.Series[item_count + 2].Enabled = true;
}
else
{
chart1.Series[item_count + 2].Enabled = false;
}
item_count++;
} // end for each item check
} // end selection changed
然而,当代码到达此部分时,我收到错误消息
未处理的异常...此枚举器绑定的列表已被修改。只有在列表不变的情况下才能使用枚举器
我不确定导致此问题的原因。根据我的理解,我不会在foreach循环期间更改列表框项。是什么导致此错误,我该如何解决?
答案 0 :(得分:1)
你只需用fore替换foreach。
在执行foreach时,您无法操纵集合的项目
private void lbSERIES_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i < lbSERIES.Items.Count; i++)
{
if (lbSERIES.SelectedItems.Contains(lbSERIES.Items[i]))
{
chart1.Series[i + 2].Enabled = true;
}
else
{
chart1.Series[i + 2].Enabled = false;
}
} // end for each item check
} // end selection changed