您好我正在设计一个显示打开文件中的折线图的图表 我已经把它全部工作所以这不是问题, 问题是我希望复选框能够添加该行如果选中复选框或删除该行如果取消选中该复选框,我希望图表刷新更改复选框的状态以添加/删除相应地排队。 我在复选框和图表刷新时遇到问题
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是我程序的另一个方面,但它们工作正常。
答案 0 :(得分:1)
如果要观察Checkbox的Checked属性的更改,则需要将代码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
的已检查状态。