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 状态。
你好,我正在设计一个图表,显示来自打开文件的折线图 我已经完成了所有工作,所以这不是问题, 问题是我希望复选框能够在复选框被选中时添加行,或者在复选框未被选中时删除行,我希望图表在将复选框状态更改为 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 状态。