Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除填充矩形c#_C#_Drawing_Gdi - Fatal编程技术网

删除填充矩形c#

删除填充矩形c#,c#,drawing,gdi,C#,Drawing,Gdi,我正在制作一个视频游戏的外部地图。因此,我画了一个长方形内的图片框。我使用计时器每隔1/10秒重新绘制一次矩形。现在我的问题是:如何在绘制新矩形之前删除旧矩形 您应该使用通过PaintEventArgs传递的Graphics对象,在事件处理程序中为PictureBox的Paint事件绘制图形。然后,每次PictureBox重新绘制其内容时,都会为您清除和重新绘制PictureBox的背景。然后,你不需要每隔1/10秒调用你的draw方法或任何东西,只需每隔1/10秒调用yourPictureBo

我正在制作一个视频游戏的外部地图。因此,我画了一个长方形内的图片框。我使用计时器每隔1/10秒重新绘制一次矩形。现在我的问题是:如何在绘制新矩形之前删除旧矩形

您应该使用通过
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()
?查看您实际拥有的代码会有所帮助