Как добиться более плавных переходов GUI в .NET? - PullRequest
1 голос
/ 07 марта 2011

У меня есть форма главного окна, которая содержит несколько пользовательских элементов управления.Эти пользовательские элементы управления содержат от одного до нескольких элементов управления.Например, один из моих пользовательских элементов управления имеет 30 флажков.Особенно, когда я добавляю этот конкретный пользовательский элемент управления в основную форму во время события щелчка мыши, форма становится очень медленной, и вы можете видеть, что каждый компонент рисуется один за другим.Конечно, я не хочу, чтобы мои пользователи видели это.Я прочитал о двойной буферизации и включил это в моем usercontrol и всех других элементах управления в моем решении.Тем не менее, это, похоже, не улучшает скорость обработки графики.Возможно, я мог бы создать этот определенный usercontrol во время form_load и изменить его видимость на false, а затем, когда событие сработало, я мог бы установить его обратно в true, но я уверен, что есть другой способ решить эту проблему.

Есть идеи?

Ответы [ 5 ]

4 голосов
/ 07 марта 2011

Например, один из моих пользовательских элементов управления имеет 30 флажков.

Должны ли все эти флажки быть видимыми одновременно?Возможно, будет более продуктивно (и приведет к улучшению дизайна) разделить эти флажки между разными вкладками или даже разными формами.

0 голосов
/ 08 марта 2011

Как @Bic предложил проверилListBox или парамный код. Спасибо.

0 голосов
/ 07 марта 2011

Включить DoubleBuffering.

Не все элементы управления позволяют устанавливать его напрямую, чтобы обойти этот подкласс элемента управления и установить DoubleBuffering в конструкторе

0 голосов
/ 07 марта 2011

Если 30 флажков создают проблемы, вы можете распределить свою работу по разным страницам. И страницы всегда работают быстрее, чем окна. Таким образом, вы можете распределить свои 30 флажков на 2 или 3 страницах, если можете.

0 голосов
/ 07 марта 2011

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

К моему удивлению, я обнаружил, что компиляция в режиме Release дает намного быстрее (и приемлемо) время рисования, чем в режиме отладки.

Я бы попробовал и посмотрел, если оптимизация имеет значение.

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