有很多文章解决Windows窗体中的闪烁。大多数建议设置DoubleBuffered = true或设置一堆ControlStyle标志。但是,这些都不能帮助减少TextBox闪烁。
以下是几个相关问题:
> How to double buffer .NET controls on a form?
> How to eliminate flicker in Windows.Forms custom control when scrolling?
要重现问题,创建一个新的WinForms项目,添加一个TextBox,启用多行,禁用单词换行,添加一堆文本,将Anchor设置为左上顶部。现在运行并调整大小。文字闪烁。对于几个嵌套的TableLayoutPanels中的文本框,调整大小的闪烁更加糟糕。
在上述问题中提出的解决方案最好不要修复闪烁;如果我获得实验并在TextBox上设置受保护的ControlStyle,我可以完全断开它(通过启用UserPaint),但不能消除闪烁。