Add/remove zedgraph 上带复选框的曲线

Add/remove curve with checkbox on zedgraph

你好,我正在设计一个图表,显示来自打开文件的折线图 我已经完成了所有工作,所以这不是问题, 问题是我希望复选框能够在复选框被选中时添加行,或者在复选框未被选中时删除行,我希望图表在将复选框状态更改为 add/remove 相应的行。 我在复选框和图表刷新方面遇到问题

if (LCheck.Checked)
{
    LineItem line1 = myPane.AddCurve("LINE1",
        LL, Color.Red, SymbolType.None);
    zgc.AxisChange();
    zgc.Invalidate();
    zgc.Refresh(); 
}

else if (!LCheck.Checked)
{
    LL.Clear();
    zgc.AxisChange();
    zgc.Invalidate();
    zgc.Refresh();
}

这是这样做的方法还是有更好的方法?

更新:

     public void CreateGraph(ZedGraphControl zgc)
        {
          //HRCheck.Checked = true;
          SpeedCheck.Checked = true;
          AltCheck.Checked = true;
        PowerCheck.Checked = true; 


        Form1 form = new Form1(fileOpen);
        GraphPane myPane = zgc.GraphPane;
double x, y1, y2, y3, y4;
 x = 0; 
   PointPairList LL = new PointPairList();
for (int i = 0; i < form.dataGridView1.Rows.Count; ++i)
        {

        y1 = (Convert.ToDouble(form.dataGridView1.Rows[i].Cells["VALUE1"].Value));


LL.Add(x, y1);


x++;


 }
  LineItem line1 = myPane.AddCurve("LINE1",
        LL, Color.Red, SymbolType.None);

 zgc.AxisChange();
      zgc.Invalidate();
       zgc.Refresh(); 
}

这是我创建图表的方法

我已将所有相关代码放入 checkchanged 事件中,但它似乎不起作用, fileOpen 和 datagridview 用于我程序的另一个方面,但它们工作正常。

如果您想观察 Checked 属性 的 Checkbox 的变化,您需要将代码 Checkbox.CheckedChanged 添加到事件处理程序。

您可以将代码重构为

if (LCheck.Checked)
{
    LineItem line1 = myPane.AddCurve("LINE1",
        LL, Color.Red, SymbolType.None);
}
else
{
    LL.Clear();
}
zgc.AxisChange();
zgc.Invalidate();
zgc.Refresh(); 

更新:

我认为,您每次调用 CreateGraph 方法时都在重新创建图形。在这种情况下,您可以在 LCheck.ChechedChanged 事件中调用它。并检查 LCheck 的 Checked 状态。