Подтвердить что ты не робот

С# Winforms: эффективное отображение многих элементов управления

Я создаю элемент управления, который содержит 15x15 = 225 кнопок и должен быть изменен. Потому что это сетка, привязка и стыковка не будут работать. Я пробовал как TableLayoutPanel, так и обработку события изменения размера вручную для управления размерами и размерами. В обоих случаях изменение размера неприемлемо медленное. Маскировка приостановки/возобновления в функции изменения размера, когда я вручную обрабатываю макет, не помогает.

Есть ли что-то фундаментальное, что я могу изменить, чтобы ускорить процесс, или это просто ограничение встроенных элементов управления? Я понимаю, что я могу создать собственный элемент управления с нуля, обрабатывать клики и рисовать самостоятельно, хотя я бы предпочел придерживаться встроенных элементов управления, если это возможно.

Edit

Я знаю много кнопок. Мой вопрос является техническим; не о дизайне пользовательского интерфейса.

4b9b3361

Ответ 1

WinForms не справляется с отображением этого множества элементов управления в то же время, к сожалению.

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

Но в вашем случае это не похоже на вариант. Вы делаете что-то вроде игры в стиле тральщика? Там у вас есть сетка кнопок, которые можно щелкнуть. В такой ситуации я бы посоветовал вам обратиться за индивидуальным владельцем нарисованного элемента управления, где вы объединяете все кнопки в одном элементе управления. Не создавайте составной элемент управления, содержащий 225 кнопок - это не поможет: -)

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