我有一个包含许多控件的WinForms表单。在调整表单大小时,我需要在PictureBox
es中放置和调整组件大小并重新绘制图片。
我遇到了闪烁问题,所以现在我在SuspendLayout
事件的开头调用SizeChanged
(最后是ResumeLayout
)。
但这还不够,所以我使用一个布尔变量来指示是否应该重新绘制表单。我在SizeChanged
事件处将其设置为true,在Paint事件之后将其设置为false。这解决了这个问题,因为出于某种神秘的原因,Paint事件经常被提升。
表单有时仍然没有正确重新绘制。我通过在SizeChanged
事件中调用ResizeEnd
方法解决了这个问题(我不知道它为什么会起作用)。
现在几乎一切正常,但在最大化/取消最大化表格后,PictureBox
es中的图片不会被重新绘制。一切都是大小和放置正确,除了具有相同大小的图片(但PictureBox
es调整大小)。我不知道为什么或我还能做什么(除了禁用最大化)。
我很感激任何建议。