Stack-O, У меня есть TableLayoutPanel с 50 строками и 6 столбцами. Это все хорошо и хорошо, но всякий раз, когда я перемещаю или изменяю размер моего WinForm, требуется, чтобы TableLayoutPanel перекрашивал. Как я могу ускорить это?Ускорение столаLayoutPanel Painting?
1
A
ответ
1
1). Скрыть таблицу при изменении размера.
2). Макетная обработка таблицы при изменении размера.
4). Не используйте пользовательские цвета, я имею в виду не Color.Control для фона как для табличных, так и для дочерних элементов управления.
5). Не используйте панель стола. Я серьезно - если вам нужно поддерживать порядок десятков элементов управления, используйте свою собственную логику компоновки; это не так сложно. Это простая арифметика и набор элементов управления для перемещения, и это намного эффективнее.
ИМХО.
Извините, что забыл упомянуть, что таблица скрывается при изменении размера, но после того, как вы решите размер, он должен перекрасить его в новый размер один раз, и это то, что так долго. Могу я скрыть его, пока он ... красками? : S Я в замешательстве ... – sooprise
У меня была такая же проблема, у меня было около 50 элементов управления на столе. Я попытался сделать таблицу прозрачной и. Это все неэффективно. Единственное эффективное решение - избавиться от управления таблицей и установить дочерние элементы управления вручную в OnSize(). В общем, избавьтесь от любого контейнера, который вы можете себе позволить. ИМХО. –
И вы можете попробовать для своей формы: защищенное переопределение CreateParams CreateParams { получить { СоздатьPapams cp = base.CreateParams; cp.ExStyle | = 0x02000000; return cp; } } Но у него есть побочные эффекты, будьте осторожны. –