这基本上就是当我拖动窗口时发生的情况,当你最小化窗口并且一切都变成空白时出现了类似的问题,但我通过捕获最小化事件并强制它更新所有内容来掩盖它。
如果不从头开始重写整个事情,我能做些什么吗?我不知道要分享哪部分代码,因为我不知道可能导致它的原因。
PS:这是Windows 10上的正常winforms。
答案 0 :(得分:1)
您在评论中提到您在Control.CreateGraphics
事件之外使用Paint
绘制控件。这是不好的做法,因为窗口的内容可能由于多种原因而需要刷新。例如,在窗口被另一个窗口暂时遮挡后,将触发重绘以重绘已覆盖的区域。但是,由于您没有在Paint
事件中进行绘制,因此当控件使用其默认内容(基本上是其背景颜色)重绘自身时,使用Control.CreateGraphics
绘制的任何内容都将被删除。
我建议在您绘制的任何控件上添加Paint
事件处理程序,并使用通过Graphics
传入的提供的PaintEventArgs
对象在该处理程序中绘制图形。在绘制背景后立即触发此事件,因此无论您绘制什么内容都会在此之上。