В Windows Forms есть множество статей, касающихся мерцания. Большинство рекомендуют устанавливать DoubleBuffered = true
или устанавливать кучу флагов ControlStyle
. Тем не менее, ни одно из них не помогает уменьшить мерцание TextBox.
Вот несколько связанных вопросов:
- Как дублировать элементы управления .NET в форме?
- Как устранить мерцание в пользовательском элементе управления Windows.Forms при прокрутке?
Чтобы воспроизвести проблему, создайте новый проект WinForms, добавьте TextBox
, включите многострочный, отключите перенос слов, добавьте кучу текста, установите Anchor
в Left + Right + Top + Bottom. Теперь запустите и измените размер. Текст мерцает. Для текстовых полей внутри пары вложенных TableLayoutPanel
мерцание при изменении размера еще хуже.
Применение решений, предложенных в вышеуказанных вопросах, в лучшем случае не устраняет мерцание; если я получу эксперимент и установлю защищенный ControlStyle
на TextBox
, я могу полностью его сломать (включив UserPaint
), но не устранив мерцание.
Итак, есть ли вообще способ исправить мерцание текста в TextBox?