C# 在多个图表区域中添加系列

C# 在多个图表区域中添加系列,c#,winforms,charts,C#,Winforms,Charts,我有一个包含多个图表区域的图表,我希望每次选择一个新的图表区域时,列表视图都要重置,并且用户能够在新区域中添加他想要的任意多个系列 每次检查listview中的项目时,我都会创建新的系列。 以下是我尝试过的: private void listView1_ItemCheck(object sender, ItemCheckEventArgs e) { if (e.NewValue == CheckState.Checked) { // checkedItems.C

我有一个包含多个图表区域的图表,我希望每次选择一个新的图表区域时,列表视图都要重置,并且用户能够在新区域中添加他想要的任意多个系列

每次检查listview中的项目时,我都会创建新的系列。 以下是我尝试过的:

private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (e.NewValue == CheckState.Checked)
    {
        // checkedItems.Clear();
       
        chart1.Series.Add((listView1.Items[e.Index].Text).ToString());
        checkedItems.Add(chart1.Series[(listView1.Items[e.Index].Text).ToString()]);
       
        foreach (var chitem in checkedItems)
        {
            chitem.ChartType = SeriesChartType.Line;
            chitem.ChartArea = select; // select is the name of the selected chart Area
            for (int r = 0; r < num_rows; r++)
            {
                chitem.Points.AddXY(r,values[r,listView1.Items.IndexOf(listView1.Items[e.Index])]);
            }
        }
    }
}


private void chart1_MouseDoubleClick(object sender, MouseEventArgs e)
    {
        foreach (ChartArea ca in chart1.ChartAreas)
        {
            
            if (ChartAreaClientRectangle(chart1, ca).Contains(e.Location))
            {
                Console.WriteLine(" You have double-clicked on chartarea " + ca.Name);
                
                select = ca.Name;
                
                break;
            }
        }
    }
private void listView1\u ItemCheck(对象发送方,ItemCheckEventArgs e)
{
if(e.NewValue==CheckState.Checked)
{
//checkedItems.Clear();
chart1.Series.Add((listView1.Items[e.Index].Text).ToString());
checkedItems.Add(chart1.Series[(listView1.Items[e.Index].Text).ToString());
foreach(checkedItems中的var chitem)
{
chitem.ChartType=serieChartType.Line;
chitem.ChartArea=select;//select是所选图表区域的名称
对于(int r=0;r

问题是,当用户选择另一个图表区域,因此选择值发生变化时,所有系列都从最新选择的图表区域移动。

这听起来不正确。
chitem.ChartArea
属性是一个字符串,不会因为更改变量的值而更改。必须有其他代码负责。如何定义
select
?它是否有一个setter,或者..?是的,select是在另一个函数中定义的。另一个函数返回双击的图表区域的名称。我没有包括它,因为我认为它不是必需的。如果仅此而已,那么应该有其他代码更改
chitem.ChartArea
值。我编辑了我的问题并添加了缺少的代码hm,只是注意到您在所有选中的项上循环,而不仅仅是新项。这可能是所有以前和仍然检查的项目都被分配到新ca的原因。。