你好,我正在设计一个图形,它从打开的文件中显示一个线图,所以这不是问题,问题是如果复选框被选中,我希望复选框能够添加行,或者如果复选框未选中,则删除行,我希望图形在更改复选框的状态时刷新,从而相应地添加/删除行。我在复选框和图表刷新方面有问题。
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是我程序的另一个方面,但它们工作得很好。
发布于 2015-04-17 16:19:19
如果要观察复选框选中属性的更改,则需要将代码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的检查状态。
https://stackoverflow.com/questions/29703986
复制相似问题