С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 9

Концепция контрола

03.05.2010, 18:54. Показов 2637. Ответов 24
Метки нет (Все метки)

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

Во вложении: как примерно должен выглядеть компонент.

Подскажите, есть ли вообще шанс, что такая куча (14400) маленьких объектов будет нормально отрисовываться? И если нет, то куда покопать, может я гвозди микроскопом забиваю?
Изображения
 
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2010, 18:54
Ответы с готовыми решениями:

Программа для тестирования сети. Концепция и разработка.
Дамы и господа, здравствуйте! Столкнулся с необходимостью написания одной замечательной программы но засел на концепции её работы. ...

перемещение контрола
Здравствуйте! Подскажите, пожалуйста, как на C# можно реализовать перемещение контрола во время выполнения программы. Заранее благодарен.

Сериализация Контрола (UserControl)
Столкнулся с проблемой сериализации контрола, который я сделал. Имеется класс AppSettings с методом Save() public void...

24
мну довольно <(-__-)l
 Аватар для gGrn-7DA
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
03.05.2010, 22:46
превратить эти 14400 контролов в 100 контролов и прорисовка не будет страдать. правда могтут возникнуть проблемы с обработкой событий. но сказать как их решить не могу пока не пойму для чего вам эти контролы нужны?

DubleBuffered и не должен помогать в этом случае. он предназначен для сглаживания мерцаний, которые могут возникать, если подряд идут несколько команд Draw... данная опция заставляет программу сначала обрабатать эти команды и лишь потом обновить контрол.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
03.05.2010, 23:08
Если задача стоит в контролах для работы с текстом, почему не воспользоваться dataGridView.
Еще есть ListView.
Если же это учебное задание (контрольная, курсовая), то, я думаю, тут цель - научиться делать, а не добиваться скорости.
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 9
04.05.2010, 08:46  [ТС]
К сожалению, не учебная. Попробую подробнее описать задачу. Я пишу приложение для формирования раскладки номера журнала (схемы размещения контента). Контрол - страница, на которую будут помещаться другой компонент (сам контент, с картинкой, названием, размером и тд). Нарисованная сетка - для удобства пользователя (визуально видно, куда кладешь; подсветка возможного места размещения и тд), а так же для вызова DragEnter, чтобы не заморачиваться на координаты мышки и точно знать, на какую ячейку навел пользователь.
Можно конечно плюнуть на все красивости, нарисовать это на канве контрола и сделать один объект вместо 144, но хотелось все сделать просто и удобно. Ведь грид то как то отрисовывает свои ячейки, которые тоже объекты и их тоже не мало.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.05.2010, 08:51
Цитата Сообщение от k0rw1n Посмотреть сообщение
может я гвозди микроскопом забиваю
. Скорее гвозди под атомным сканирующим микроскопом изучаешь (наноструктуру стали снимаешь, взяв гвозди в качестве образца) - странноватое, но вполне допустимое применение микроскопа.
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 9
04.05.2010, 08:56  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
. Скорее гвозди под атомным сканирующим микроскопом изучаешь (наноструктуру стали снимаешь, взяв гвозди в качестве образца) - странноватое, но вполне допустимое применение микроскопа.
Спасибо большое, конечно, но, судя по тому, что у меня ничего не получается, я снимаю наноструктуру, перепутав микроскоп с микроволновкой ))
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.05.2010, 08:57
Нет. Просто гвоздь огромный, атомов много, они на экран не влезают.
0
мну довольно <(-__-)l
 Аватар для gGrn-7DA
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
04.05.2010, 10:32
что вы тут мутите? он микроскоп гвоздем збивает, потому как обратное вполне даже обчное действие... =)
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 9
04.05.2010, 10:51  [ТС]
Это все конечно весело: гвозди, микроскопы, блэкджек... ) Но по сути вопроса. Как можно организовать такой контрол (чтобы события были у ячеек) или как сделать, чтобы этот не тормозил?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.05.2010, 10:53
Он же не грид в цел пихает, а наоборот.
0
мну довольно <(-__-)l
 Аватар для gGrn-7DA
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
04.05.2010, 10:59
всегда приходится выбирать
попроще написать или что бы быстрее работало...
в твоем случае скорее всего для работы с более чем 10к элементов требуется их объединить...
да илучше выбрать *никсовую ос для работы. в виндоусе все работает медленнее...
но в никсах существует проблема установки настройки оси и приложений...
да и написать приложение под них несколько сложнее может быть...
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.05.2010, 11:13
Цитата Сообщение от gGrn-7DA Посмотреть сообщение
написать приложение под них сложнее
. Я уже пробовал, поэтому согласен.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
04.05.2010, 18:44
k0rw1n, пожалуй C# и студия не то средство, чтобы сверхскоростные приложения делать
Для этих целей лучше подошел бы Builder C++.
0
04.05.2010, 18:56

Не по теме:

nio, Приведи код, который на C# работает медленнее, чем на Builder C++, только желательно что-нибудь практичное, не помещение переменной в регистр

0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
04.05.2010, 19:24
Цитата Сообщение от HIMen Посмотреть сообщение
Не по теме:
nio, Приведи код, который на C# работает медленнее, чем на Builder C++, только желательно что-нибудь практичное, не помещение переменной в регистр
Писал в свое время прогу по работе с изображениями, было много вопросов (в том числе и быстродействие), и не раз натыкался в нете на высказывания, что С# из-за использования Framework, является более удобным средством разработки (+), но при этом производительность снижается (-).
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
04.05.2010, 19:28
Я тоже постоянно вижу такие высказывания, только примеров нет
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
04.05.2010, 19:39
HIMen, у меня дипломный проект был связан с графикой (приходилось отображать карту в 10 Мп и динамически рисовать на ней объекты), мелькания и торможения избежать не удалось (двойная буферизация не спасла, и препод не поверил, что она есть вообще), в результате -1 балл Мне конечно рекомендовали отказаться от использования Graphics и переписать классы для работы с графикой под себя, но это убийство.
0
мну довольно <(-__-)l
 Аватар для gGrn-7DA
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
04.05.2010, 23:35
правильно говорили=)
а в си# есть как быстрые, так и медленные альтернативы методов...
0
48 / 49 / 10
Регистрация: 24.12.2008
Сообщений: 75
04.05.2010, 23:37
to nio,
незнаю как Вы это делали, но у меня в подобном проекте карты были по 10000х7000 пикселей и ничего не мерцало....
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 9
05.05.2010, 07:24  [ТС]
Друзья, не хотел бы вас прерывать, но я правильно вынес мысль, что нужно просто на канве рисовать, забить на всякие объекты, а ячейку по координатам искать? )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2010, 07:24
Помогаю со студенческими работами здесь

Изменение вида контрола
Как изменит вид контрола?:eek: К примеру мне нужно изменить в трекбаре форму бегунка:huh:

Обработчик события контрола
Как перехватыватить событие которое происхордит в контроле, как написать обработчик для него в форме которя пользуеться этим контролом?

Чтение внешнего контрола
Здравствуйте, Подскажите, пожалуйста, как мне из си-шарпа прочесть текст в контроле внешней программы. Знаю, что читать заголовок окна...

handle активного контрола
Доброго времени суток! Собственно вопрос из темы, как определить handle контрола, который активен?Хотел через FindWindowEx, но есть ряд...

Передать ивент контрола в ф-цию
Всем привет. Имеется такая вот ф-ция: delegate void ParametrizedMethodInvoker1(int arg); void log_good(int arg) { if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru