|
1 / 1 / 2
Регистрация: 10.11.2013
Сообщений: 126
|
||||||
Изменить размер по событию click, при растягивании окна перерисовать сетку03.04.2016, 23:45. Показов 2497. Ответов 16
Метки нет (Все метки)
Добрый вечер!
Помогите изменить размер ячеек сетки по событию click(вообще хотел по вращению колеса мыши, но не нашел такого действия), т.е. как бы сымитировать эффект приближения и при растягивании окна формы перерисовать сетку до краев формы. Если можно особо не усожняя мой код(полностью отсутствуют знания пока. )
Ну вернее 1% знаний по Windows.Forms.
0
|
||||||
| 03.04.2016, 23:45 | |
|
Ответы с готовыми решениями:
16
Изменить размер окна fancybox при переходе по ссылке Передать событию Click кнопке доп. информацию при ее программном нажатии |
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||
| 04.04.2016, 03:00 | ||
|
Во-первых, определитесь, на чем именно вы рисуете. Если на битмапе, то зачем это делать в событии Paint? Если на графиксе picturebox, то зачем битмап(и вообще, нужен ли сам picturebox, может лучше прямо на форме рисовать)? В любом случае, по-моему стоит сделать статический метод, принимающий в аргументах Graphics, Rectangle, в котором должна рисоваться сетка, и шаг, который у вас сейчас step_x и step_y. В нем и рисовать сетку на графиксе. Дальше, в зависимости от того, на чем вы решите рисовать, вызывать этот метод либо в событии Paint(Graphics тогда брать из аргументов события), либо где-то еще где посчитаете нужным, если рисовать таки на битмапе. Переменные, которые подаются как шаг, объявить как поля в классе формы. И, когда потребуется, просто менять их значения и вызывать перерисовку.
1
|
||
|
1 / 1 / 2
Регистрация: 10.11.2013
Сообщений: 126
|
|
| 04.04.2016, 09:07 [ТС] | |
|
Там два графических объекта для создания двойного буфера для сглаживания, при частоте обновления 30 мс по событию таймер были тормоза, не я придумал, у коллеги были проблемы он сделал так.
А кто может помочь исправить этот код: я создал событие click, где меняю шаг сетки, но событие paint, которое как я предполагал будет вызываться при каждом изменении не вызывает повторный проход кода. Как сделать чтобы событие click влияло на paint? И да лучше код, идеи реализации мне бы помогли, если бы были знания. И да убрать несколько графических объектов инкапсулирующих поверхность рисования, думаю можно будет, там кажется есть свойство двойной буферизации, но сейчас пока охота сделать так, а потом уже тот вопрос решить. Добавлено через 1 минуту Да, ссылку то я заметил после того как написал ответный пост, сорри, сейчас посмотрю
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|||
| 04.04.2016, 17:12 | |||
|
0
|
|||
|
1 / 1 / 2
Регистрация: 10.11.2013
Сообщений: 126
|
||||||
| 05.04.2016, 14:15 [ТС] | ||||||
|
Кстати на сайте х-брах-р есть тема C# WinForms — Советы по разработке пользовательских компонентов , там про использование Bitmap есть. file:///C:/Users/user/Desktop/C%23%20WindowsForms/C%23%20WinForms%20%E2%80%94%20%D0%A1%D0% BE%D0%B2%D0%B5%D1%82%D1%8B%20%D0%BF%D0%B E%20%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1 %D0%BE%D1%82%D0%BA%D0%B5%20%D0%BF%D0%BE% D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%8 2%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D1 %85%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0% BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2%20_%20% D0%A5%D0%B0%D0%B1%D1%80%D0%B0%D1%85%D0%B 0%D0%B1%D1%80.htm -- надеюсь я не нарушаю правила, данным постом, так как в правилах только про запрет ссылок на другие форумы.
Кстати кто может, на основе этого кода, напишите пожалуйста реализацию координатной сетки, с обновлением по timers.timer. Естественно я пробую реализовать сам, но помощь будет полезна, пока не получилось. Добавлено через 3 часа 34 минуты Вот написал на основе того кода костяк, но не выводит прямоугольник, что не так?
0
|
||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||
| 05.04.2016, 14:56 | ||
|
НовыйНовичок, ваша ссылка, во-первых, указывает на рабочий стол вашего компа, во-вторых для ссылок есть теги.
Должен быть тогда уж класс, который отвечает за уровень зума и тд, методы для работы с объектами на этой сетке и тд. Если вы собираетесь рисовать графики или диаграммы, то для этого существует компонент Chart и сторонняя библиотека ZedGraph, не надо изобретать велосипед. Добавлено через 26 минут НовыйНовичок, данный код рисует. Не знаю, в чем у вас проблема. Правда зачем там упоминается pictureBox, если рисование происходит на форме, не понимаю.
0
|
||
|
1 / 1 / 2
Регистрация: 10.11.2013
Сообщений: 126
|
|
| 05.04.2016, 15:01 [ТС] | |
|
Да приложение по построению графиков, данные будут с другой машины, приходят по сокету, обновляются по таймеру, ось абсцисс время; данные отображаются примерно как в диспетчере задач загрузка процессора с автоматическим масштабированием, на текущий момент(с неб. задержкой понятно). При остановке приложения можно использовать доп. функции по обработке и анализу инфы. Вот примерно.
Но это большая задача, мне сейчас только бы ответ на вопрос почему не рисуется прямоугольник в последнем моем коде.
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 05.04.2016, 15:03 | |
|
НовыйНовичок, как я уже сказал, он рисуется. По краям формы. Снизу и справа не видно, так как получается, что само рисование происходит за краем. А по задаче-если она не учебная, то не стесняйтесь использовать сторонние библиотеки.
0
|
|
|
1 / 1 / 2
Регистрация: 10.11.2013
Сообщений: 126
|
||||||
| 05.04.2016, 15:28 [ТС] | ||||||
|
Как я понимаю pictureBox там чтобы инициализоровать размеры bitmap'a, может это можно сделать размерами самой form1?
Почему рисунок не видно не знаю, может как раз picture box закрывает. Добавлено через 4 минуты Убрал picture box, теперь виден прямоугольник, но желтый, т.е. событие paint обрабатывается, a render нет, так там рисуется синий прямоугольник. Добавлено через 3 минуты
Добавлено через 11 минут А по поводу библиотек chart и zedgraph посмотрю, спасибо. Но посмотрите кто-нибудь, что неправильно в коде выше, или функция render() не вызывается, или я непрафильно использую её (.
0
|
||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 05.04.2016, 15:29 | |
|
НовыйНовичок, ну так событие Render в этом коде не вызывается.
0
|
|
|
1 / 1 / 2
Регистрация: 10.11.2013
Сообщений: 126
|
|
| 05.04.2016, 15:56 [ТС] | |
|
Каким образом можно инициировать это событие? Я не понимаю какие мне изменения сделать в коде?
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 05.04.2016, 17:49 | |
|
НовыйНовичок, хотелось бы увидеть ссылку на изначальный вариант этого кода, чтобы что-то сказать.
0
|
|
|
1 / 1 / 2
Регистрация: 10.11.2013
Сообщений: 126
|
|
| 05.04.2016, 22:56 [ТС] | |
|
Сообщение в пятом топике.
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 05.04.2016, 23:38 | |
|
НовыйНовичок, что за пятый топик? По моей ссылке я такого кода не вижу.
0
|
|
|
1 / 1 / 2
Регистрация: 10.11.2013
Сообщений: 126
|
|
| 06.04.2016, 10:30 [ТС] | |
|
Сверху наших сообщений значки, над тем сообщением, где #5, там ссылка в текстовом виде.
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 06.04.2016, 14:37 | |
|
НовыйНовичок, я как уже писал выше, я не знаю, о чем мне должна говорить ссылка на рабочий стол вашего компьютера, к которому я доступа не имею.
0
|
|
|
1 / 1 / 2
Регистрация: 10.11.2013
Сообщений: 126
|
|
| 06.04.2016, 15:24 [ТС] | |
|
https://habrahabr.ru/post/263847/ -- вот, я не знаю как тот набор символов, когда я его ставлю в браузер открывает у меня в нем нужный пост
0
|
|
| 06.04.2016, 15:24 | |
|
Помогаю со студенческими работами здесь
17
Растягивание изображения при растягивании главного окна. dataGridView автоматически растягивается при растягивании окна(формы) Изменить размер и положение окна, которое получается при подключении crt
написать резиновую вёрстку так чтобы при растягивании окна браузера всё оставалось там где и должно быть Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|