【问题标题】:delete filled rectangle c#删除填充矩形c#
【发布时间】:2015-08-20 21:32:27
【问题描述】:

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

【问题讨论】:

  • 查看您实际拥有的代码会有所帮助

标签: c# drawing gdi


【解决方案1】:

您应该使用通过PaintEventArgs 传递的Graphics 对象在PictureBoxPaint 事件的事件处理程序中进行绘图。然后每次PictureBox重新绘制其内容时,将为您完成PictureBox背景的清除和重新绘制。然后,您可以每 1/10 秒调用一次 yourPictureBox.Invalidate(),而不是每 1/10 秒调用一次绘图方法。

【讨论】:

  • 你能给我更多关于如何做到这一点的信息吗?
  • @darude_cod3r 将你的绘图代码移到PictureBox_OnPaint()
  • 您可以通过表单设计器添加Paint 事件处理程序。选择您的PictureBox,然后在“属性”窗口中,单击“事件”按钮(看起来像闪电)。向下滚动到 Paint 事件。双击。这将为您的代码添加一个事件处理程序方法,并将您带到 .cs 文件中的那个点。将您的绘图代码移动到该方法中,但使用e.Graphics 而不是您将创建的Graphics 对象。如果您需要更详细的信息,现在是 Google 时间了。
  • 问题是,您的建议仅在我滚动图片框时有效。一旦我停止,我的广场就会消失......
  • 您是否更新了您的计时器Tick 事件处理程序以调用yourPictureBox.Invalidate()
猜你喜欢
  • 2012-05-17
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多