Изменение размера C # - PullRequest
       19

Изменение размера C #

1 голос
/ 18 октября 2010

У меня есть форма с прикрепленным к ней TableLayoutPanel и с TextBox, TreeView и ListView внутри этого Panel.

Когда пользователь изменяет размеры формы, эти элементы управления изменяют размер вместе с ней, но есть заметная задержка, если пользователь изменяет размеры быстро или если пользователь максимизирует всю форму; задержка настолько велика, что я смог сделать снимок экрана:

screenshot

Вы также можете заметить, что кнопка «Параметры» отображается дважды, один раз, где она должна быть (в верхнем правом углу), и один раз в середине поля поиска (где она была до изменения размера формы). Это не должно происходить, но также вызвано задержкой.

Вскоре после того, как был сделан этот скриншот, форма выглядела отлично, но кто-нибудь знает способ устранить или уменьшить эту задержку?

Я отредактировал изображение из соображений конфиденциальности, но в списке было всего около 60 элементов.

Ответы [ 2 ]

1 голос
/ 18 октября 2010

Есть ли у вас специальный код для обработки перерисовки?

Если да, то используете ли вы метод BeginUpdate() и метод EndUpdate()?

От msdn :

Запрещает рисование элемента управления до тех пор, пока не будет вызван метод EndUpdate.

Эти методы (в зависимости от вашей ситуации) могут привести к тому, что компоненты не будут обновляться до тех пор, пока послеизменение размера произошло.Это может остановить появление элементов на экране дважды и ускорить изменение размера.

0 голосов
/ 18 октября 2010

Может быть, у вас есть виртуальные элементы в вашем списке, и они медленно пересчитываются?У вас есть код, который запускается, когда listview нужно перерисовать?

...