Нужно ли вызывать SuspendLayout для каждого дочернего элемента управления? - PullRequest
13 голосов
/ 21 ноября 2011

Не могу найти информацию об этом. Мои элементы управления отображаются очень медленно, и я заметил, что я не вызываю SuspendLayout при выполнении значительных обновлений.

В чем я сомневаюсь, так как элемент управления верхнего уровня содержит элементы управления, которые содержат другие элементы управления и т. Д., Вызовет ли SuspendLayout моего верхнего элемента управления также приостановку компоновки для каждого вложенного элемента управления или мне нужно вызвать его для каждый из них?

Ответы [ 2 ]

16 голосов
/ 21 ноября 2011

Взгляните на эту статью MSDN - Практические советы по повышению производительности приложений Windows Forms .

Текст из статьи : помните, что SuspendLayout предотвращает только макет события от выполнения для этого конкретного элемента управления. Если контролирует добавлены на панель, например, SuspendLayout и ResumeLayout должны быть вызванным для панели, а не для родительской формы.

0 голосов
/ 21 ноября 2011

Мое обоснованное предположение было бы отрицательным, но я бы посоветовал попробовать в любом случае и посмотреть, поможет ли это.Эти вопросы могут дать вам решение: Как приостановить рисование для элемента управления и его дочерних элементов? , Winforms: недостаточно SuspendLayout / ResumeLayout?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...