2010-09-27 1 views
1

Stack-O, У меня есть TableLayoutPanel с 50 строками и 6 столбцами. Это все хорошо и хорошо, но всякий раз, когда я перемещаю или изменяю размер моего WinForm, требуется, чтобы TableLayoutPanel перекрашивал. Как я могу ускорить это?Ускорение столаLayoutPanel Painting?

ответ

1

1). Скрыть таблицу при изменении размера.

2). Макетная обработка таблицы при изменении размера.

4). Не используйте пользовательские цвета, я имею в виду не Color.Control для фона как для табличных, так и для дочерних элементов управления.

5). Не используйте панель стола. Я серьезно - если вам нужно поддерживать порядок десятков элементов управления, используйте свою собственную логику компоновки; это не так сложно. Это простая арифметика и набор элементов управления для перемещения, и это намного эффективнее.

ИМХО.

+0

Извините, что забыл упомянуть, что таблица скрывается при изменении размера, но после того, как вы решите размер, он должен перекрасить его в новый размер один раз, и это то, что так долго. Могу я скрыть его, пока он ... красками? : S Я в замешательстве ... – sooprise

+0

У меня была такая же проблема, у меня было около 50 элементов управления на столе. Я попытался сделать таблицу прозрачной и. Это все неэффективно. Единственное эффективное решение - избавиться от управления таблицей и установить дочерние элементы управления вручную в OnSize(). В общем, избавьтесь от любого контейнера, который вы можете себе позволить. ИМХО. –

+0

И вы можете попробовать для своей формы: защищенное переопределение CreateParams CreateParams { получить { СоздатьPapams cp = base.CreateParams; cp.ExStyle | = 0x02000000; return cp; } } Но у него есть побочные эффекты, будьте осторожны. –

 Смежные вопросы

  • Нет связанных вопросов^_^