最大化后重新粉刷

时间:2018-03-20 22:17:26

标签: c# winforms resize paint

我有一个包含许多控件的WinForms表单。在调整表单大小时,我需要在PictureBox es中放置和调整组件大小并重新绘制图片。

我遇到了闪烁问题,所以现在我在SuspendLayout事件的开头调用SizeChanged(最后是ResumeLayout)。

但这还不够,所以我使用一个布尔变量来指示是否应该重新绘制表单。我在SizeChanged事件处将其设置为true,在Paint事件之后将其设置为false。这解决了这个问题,因为出于某种神秘的原因,Paint事件经常被提升。

表单有时仍然没有正确重新绘制。我通过在SizeChanged事件中调用ResizeEnd方法解决了这个问题(我不知道它为什么会起作用)。

现在几乎一切正常,但在最大化/取消最大化表格后,PictureBox es中的图片不会被重新绘制。一切都是大小和放置正确​​,除了具有相同大小的图片(但PictureBox es调整大小)。我不知道为什么或我还能做什么(除了禁用最大化)。

我很感激任何建议。

0 个答案:

没有答案