Уменьшить мерцание .NET FlowLayoutPanel - PullRequest
3 голосов
/ 10 августа 2010

Я очищаю и добавляю несколько LinkLabel в FlowLayoutPanel каждые пару секунд. Работает нормально, но мерцание довольно заметно. Есть ли способ уменьшить его? Я попытался установить Form.DoubleBuffering, это не помогло.

Ответы [ 2 ]

5 голосов
/ 08 мая 2012

Управляется путем создания пользовательского элемента управления, полученного из FlowLayoutPanel, и установки его стилей, как показано ниже:

Открытый класс CustomFlowLayoutPanel Унаследует FlowLayoutPanel

Public Sub New()
    MyBase.New()

    SetStyle(ControlStyles.UserPaint, True)
    SetStyle(ControlStyles.AllPaintingInWmPaint, True)
    SetStyle(ControlStyles.DoubleBuffer, True)

End Sub

Конечный класс

1 голос
/ 14 февраля 2011

Попробуйте вызвать SuspendLayout () для панели, прежде чем добавлять к ней элементы управления, а затем вызовите ResumeLayout () для Panel. Вы можете немного потерять это мерцание.

...