| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Концепция контрола |
| Автор: kk00rrww11nn 3.5.2010, 17:48 |
| Здравствуйте. Необходимо написать контрол, разделенный на 144 клетки. Для дальнейшей разработки удобнее было бы, чтобы каждая клетка была объектом. Я пошел следующим путем: создал класс CShape : Control в виде прямоугольника и помещал 144 таких прямоугольника в свой контрол. Причем контролов таких на форме тоже будет больше 100. Однако при скроллинге отрисовка тормозит. DoubleBuffer тут не помогает. Выглядит это примерно так: ![]() Подскажите, есть ли вообще шанс, что такая куча (14400) маленьких объектов будет нормально отрисовываться? И если нет, то куда покопать, может я гвозди микроскопом забиваю? |
| Автор: kk00rrww11nn 4.5.2010, 08:20 |
| Попробую подробнее описать задачу. Я пишу приложение для формирования раскладки номера журнала (схемы размещения контента). Контрол - страница, на которую будут помещаться другой компонент (сам контент, с картинкой, названием, размером и тд). Нарисованная сетка - для удобства пользователя (визуально видно, куда кладешь; подсветка возможного места размещения и тд), а так же для вызова DragEnter, чтобы не заморачиваться на координаты мышки и точно знать, на какую ячейку навел пользователь. Можно конечно плюнуть на все красивости, нарисовать это на канве контрола и сделать один объект вместо 144, но хотелось все сделать просто и удобно. Ведь грид то как то отрисовывает свои ячейки, которые тоже объекты и их тоже не мало. |
| Автор: kk00rrww11nn 4.5.2010, 19:09 |
| Что то Винград меня разочаровывает... Похоже пора применять принцип валидации. |
| Автор: jonie 9.5.2010, 12:05 | ||
|
| Автор: kk00rrww11nn 10.5.2010, 14:42 | ||
Спасибо большое вам за совет, я так уже и поступил, контрол написал. |