按钮压力机上的C#面板图纸

按钮压力机上的C#面板图纸,c#,winforms,visual-studio-2012,C#,Winforms,Visual Studio 2012,如果我遗漏了一些简单的东西,我深表歉意,但我已经兜圈子一段时间了。简而言之,我想在每次按下按钮时更新面板图形(面板将包含简单的形状,如圆形和矩形)。代码如下所示: private void PanelGraphics() { ClearThePanel(); //empties the panel FillThePanel(); //draws new shapes in the panel } 然后,每次按下按钮时都会调用该函数,我对按钮事件的理解也很好,所以这不是问题

如果我遗漏了一些简单的东西,我深表歉意,但我已经兜圈子一段时间了。简而言之,我想在每次按下按钮时更新面板图形(面板将包含简单的形状,如圆形和矩形)。代码如下所示:

private void PanelGraphics()
{
    ClearThePanel();  //empties the panel
    FillThePanel();   //draws new shapes in the panel
}

然后,每次按下按钮时都会调用该函数,我对按钮事件的理解也很好,所以这不是问题。但是,我不知道如何使用PanelGraphics()函数,关于panel_paint事件的一些链接对我帮助不大。

您可以通过为面板创建图形控制器来绘制面板

Graphics g = panel.CreateGraphics();
然后,您可以使用Graphic类的大量方法在面板上绘制您想要的任何内容

g.DrawCurve(parameters);
g.DrawEllipse(parameters);
g.DrawLine(parameters);
g.DrawRectangle(parameters);
g.DrawRectangle(new Pen(panel.BackColor), new Rectangle(new Point(), panel.Size));
要清除面板,最简单的方法是在面板上画一个背景颜色的框

g.DrawCurve(parameters);
g.DrawEllipse(parameters);
g.DrawLine(parameters);
g.DrawRectangle(parameters);
g.DrawRectangle(new Pen(panel.BackColor), new Rectangle(new Point(), panel.Size));

你的问题有点不清楚。。。“取消”PanelGraphics()功能是什么意思?你是说画东西还是用它?嗯。。。我想是用这个函数来画东西吧。不管怎么说,Itzalive为我的问题提供了一个很好的解决方案。它很有魅力。谢谢。@Linjak先生小心点。如果最小化窗口并将其还原,图形将不再存在。您应该在面板的绘制事件中或在位图中绘制。@好的,我会记住它。