删除填充矩形c#
我正在制作一个视频游戏的外部地图。因此,我画了一个长方形内的图片框。我使用计时器每隔1/10秒重新绘制一次矩形。现在我的问题是:如何在绘制新矩形之前删除旧矩形 您应该使用通过删除填充矩形c#,c#,drawing,gdi,C#,Drawing,Gdi,我正在制作一个视频游戏的外部地图。因此,我画了一个长方形内的图片框。我使用计时器每隔1/10秒重新绘制一次矩形。现在我的问题是:如何在绘制新矩形之前删除旧矩形 您应该使用通过PaintEventArgs传递的Graphics对象,在事件处理程序中为PictureBox的Paint事件绘制图形。然后,每次PictureBox重新绘制其内容时,都会为您清除和重新绘制PictureBox的背景。然后,你不需要每隔1/10秒调用你的draw方法或任何东西,只需每隔1/10秒调用yourPictureBo
PaintEventArgs
传递的Graphics
对象,在事件处理程序中为PictureBox
的Paint
事件绘制图形。然后,每次PictureBox
重新绘制其内容时,都会为您清除和重新绘制PictureBox的背景。然后,你不需要每隔1/10秒调用你的draw方法或任何东西,只需每隔1/10秒调用yourPictureBox.Invalidate()
。你能给我更多的信息吗?@darude\u cod3r将你的绘图代码移到PictureBox\u OnPaint()中
您可以通过表单设计器添加Paint
事件处理程序。选择您的PictureBox
,然后在属性窗口中,单击“事件”按钮(看起来像闪电)。向下滚动至绘制
事件。双击。这将向代码中添加一个事件处理程序方法,并将您带到.cs文件中的该点。将绘图代码移到该方法中,但使用e.Graphics
而不是您将创建的Graphics
对象。如果你需要更多的细节,现在是谷歌时间。问题是,你的建议只有在我滚动图片框时才起作用。一旦我停止我的方块显示…您是否更新了计时器勾选事件处理程序以调用您的PictureBox.Invalidate()
?查看您实际拥有的代码会有所帮助