我遇到了问题:我的应用程序需要在面板上绘制一些图像。
我在Paint(..)事件上制作它。
但是如果我移动应用程序窗口然后表单,所有控件都将重新绘制。
我怎样才能摆脱它? 可能是我应该为paiting改变事件? 我试图绘制到Load(..)事件,但应用程序没有以这种方式绘制到面板中。
答案 0 :(得分:0)
你无法摆脱Repaint()
因为这是基本的OS
功能。
您可以使用Pictureboxes
代替绘制它们,顺便说一下,不要忘记启用double buffering
答案 1 :(得分:0)
应用程序仅绘制使用的部件。因此,无论以前看不到的部分是否被揭开(通过移动窗口或其上方的窗口,或调整大小,最小化/最大化等),都需要重新绘制缺失的部分,这就是您所看到的。
如果你不能只重绘零件,你可以使用位图和PictureBox
来缓存绘制的数据,这样重绘窗口只需要将位图传输到屏幕而不实际重绘内容位图。
在这种情况下,您将您的东西绘制到位图画布而不是表单画布。