Нужно ли мне называть SuspendLayout для каждого дочернего элемента управления?
Невозможно найти информацию об этом. Мои элементы управления очень медленны, и я заметил, что при выполнении основных обновлений я не звоню SuspendLayout
.
В чем я сомневаюсь, так как элемент управления верхнего уровня содержит элементы управления, которые содержат другие элементы управления и т.д., вызовет SuspendLayout
в моем верхнем элементе управления, а также приостановит макет для каждого вложенного элемента управления или мне нужно вызвать его для каждый из них?
Ответы
Ответ 1
Взгляните на эту статью MSDN - Практические советы по повышению производительности приложений Windows Forms.
Текст из статьи. Помните, что SuspendLayout предотвращает только макет. события от выполнения для этого конкретного контроля. Если элементы управления добавляются в панель, например, SuspendLayout и ResumeLayout должны вызывается для панели, а не для родительской формы.
Ответ 2
Моя образованная догадка не будет, но мой совет - попробовать все равно и посмотреть, поможет ли она. Эти вопросы могут предоставить вам решение: Как приостановить рисование для элемента управления и его детей?, Winforms: SuspendLayout/ResumeLayout недостаточно?