启用/禁用列表框选择的图形系列

时间:2018-06-15 09:18:46

标签: c# charts listbox

我正在尝试使用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循环期间更改列表框项。是什么导致此错误,我该如何解决?

1 个答案:

答案 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