【发布时间】:2015-08-11 11:49:09
【问题描述】:
基本上我需要刷新部分表单的代码,而不是整个表单。
我使用 Visual Basic,我经常制作非常简单的游戏。我经常有一个 Player 或移动的不同对象,因为我没有发布我的代码,所以我不添加纹理。相反,我设置了一堆变量来保存 Player 的 location 和 width,然后使用 e.graphics.FillRectangle... 等,效果很好,并说我移动它时我按了一个键,但没有任何反应,所以我必须写Refresh(),它有效,它会移动!
唯一的问题是当有很多对象时,比如 50+,每次程序运行 Refresh() 代码行时,整个 form 会白色持续一毫秒,通常我我一直在令人耳目一新,因为事情一直在变化,而这种形式只是一场癫痫的噩梦。
我知道我需要做什么,我只需要refresh整个表格的一小部分,我只是不知道该怎么做。
【问题讨论】:
-
如果矩形没有按预期移动,你可能画错了,或者这是一个 XY 问题。 非常很难说没有代码。见:How to Ask
-
Invalidate方法有参数选项。 -
如果您移动某些东西并在它所在的位置进行绘制,它将在它离开的地方留下一个空白/未绘制的区域。