【发布时间】:2015-08-20 21:32:27
【问题描述】:
我正在为视频游戏制作外部地图。因此,我在图片框内绘制了一个矩形。我使用计时器每 1/10 秒重画一次矩形。现在我的问题是:如何在绘制新矩形之前删除旧矩形?
【问题讨论】:
-
查看您实际拥有的代码会有所帮助
我正在为视频游戏制作外部地图。因此,我在图片框内绘制了一个矩形。我使用计时器每 1/10 秒重画一次矩形。现在我的问题是:如何在绘制新矩形之前删除旧矩形?
【问题讨论】:
您应该使用通过PaintEventArgs 传递的Graphics 对象在PictureBox 的Paint 事件的事件处理程序中进行绘图。然后每次PictureBox重新绘制其内容时,将为您完成PictureBox背景的清除和重新绘制。然后,您可以每 1/10 秒调用一次 yourPictureBox.Invalidate(),而不是每 1/10 秒调用一次绘图方法。
【讨论】:
PictureBox_OnPaint()
Paint 事件处理程序。选择您的PictureBox,然后在“属性”窗口中,单击“事件”按钮(看起来像闪电)。向下滚动到 Paint 事件。双击。这将为您的代码添加一个事件处理程序方法,并将您带到 .cs 文件中的那个点。将您的绘图代码移动到该方法中,但使用e.Graphics 而不是您将创建的Graphics 对象。如果您需要更详细的信息,现在是 Google 时间了。
Tick 事件处理程序以调用yourPictureBox.Invalidate()?