Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Концепция контрола


Автор: kk00rrww11nn 3.5.2010, 17:48
Здравствуйте. Необходимо написать контрол, разделенный на 144 клетки.  Для дальнейшей разработки удобнее было бы, чтобы каждая клетка была объектом. Я пошел следующим путем: создал класс CShape : Control в виде прямоугольника и помещал 144 таких прямоугольника в свой контрол. Причем контролов таких на форме тоже будет больше 100. Однако при скроллинге отрисовка тормозит. DoubleBuffer тут не помогает. 

Выглядит это примерно так:
user posted image

Подскажите, есть ли вообще шанс, что такая куча (14400) маленьких объектов будет нормально отрисовываться?  И если нет, то куда покопать, может я гвозди микроскопом забиваю?


Автор: kk00rrww11nn 4.5.2010, 08:20
Попробую подробнее описать задачу. Я пишу приложение для формирования раскладки номера журнала (схемы размещения контента). Контрол - страница, на которую будут помещаться другой компонент (сам контент, с картинкой, названием, размером и тд). Нарисованная сетка - для удобства пользователя (визуально видно, куда кладешь; подсветка возможного места размещения и тд), а так же для вызова DragEnter, чтобы не заморачиваться на координаты мышки и точно знать, на какую ячейку навел пользователь. 
Можно конечно плюнуть на все красивости, нарисовать это на канве контрола и сделать один объект вместо 144, но хотелось все сделать просто и удобно. Ведь грид то как то отрисовывает свои ячейки, которые тоже объекты и их тоже не мало.

Автор: kk00rrww11nn 4.5.2010, 19:09
Что то Винград меня разочаровывает... Похоже пора применять принцип валидации.

Автор: jonie 9.5.2010, 12:05
Цитата

Я пошел следующим путем: создал класс CShape : Control в виде прямоугольника и помещал 144 таких прямоугольника в свой контрол
зря. Рисуйте руками и все будет ок. Контролы будут тормозить. Посмотрите эксель - рисуют же, и не обламываются ... и объектаная модель есть, так что "удобнее чтобы были контролами" - фигня. Более того вам винда не даст создавать столько окон зачастую - просто вырубит ваше приложение.

Автор: kk00rrww11nn 10.5.2010, 14:42
Цитата(jonie @ 9.5.2010,  12:05)
зря. Рисуйте руками и все будет ок. Контролы будут тормозить. Посмотрите эксель - рисуют же, и не обламываются ... и объектаная модель есть, так что "удобнее чтобы были контролами" - фигня. Более того вам винда не даст создавать столько окон зачастую - просто вырубит ваше приложение.

Спасибо большое вам за совет, я так уже и поступил, контрол написал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)