绘制/删除(显示/隐藏)特定线条的复选框c# winForms图形

本文关键字:复选框 winForms 图形 删除 显示 隐藏 绘制 | 更新日期: 2023-09-27 18:05:38

我用c#创建了一个应用程序,windows窗体,我在面板上绘制所有对象。我创建了网格,许多线条,矩形,填充的椭圆等…

我想创建一个复选框,在那里我可以控制哪些行应该显示和何时显示。例如,如果复选框被选中,显示行,如果它没有被选中,隐藏它们或从面板中删除它们。

如何做到这一点?我只能删除面板上的所有对象,而不是特定的对象…如何通过程序迭代,因为没有ID ?

如何添加对象的示例。

e.Graphics.DrawLine(pen, x1, y1, x2, y2);
e.Graphics.FillEllipse(Brushes.Red, x1, y1, 10, 10);

有办法把它们分组吗?我可以重写整个代码,只带/不带我想要的行,但因为有很多代码,这不是一个好主意。

绘制/删除(显示/隐藏)特定线条的复选框c# winForms图形

你必须总是重新绘制你的面板。

private void chbShowLines_CheckedChanged(object sender, EventArgs e)
{
    panel.Invalidate()
}
private void panel_Paint(object sender, PaintEventArgs e)
{
    if (chbShowLines.Checked)
    {
        // draw lines
    }
    // draw common parts
}