Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для slenderface
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313

Изменять свойство Location пропорционально размеру изображений

30.12.2014, 19:17. Показов 1833. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть panel, на которой располагаются 10 значков(pictureBox) по длине всей полоски. Они одинакового размера и идут друг за другом с одинаковым интервалом в рядок.

Внизу там стрелка, при нажатии и непрерывным держанием(MouseUp) вниз панель увеличивается по высоте вместе со значками:
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void topSize_MouseUp(object sender, MouseEventArgs e)
        {
            var cPos = Cursor.Position.Y; int pos, sz;
            topSize.Location = new Point(this.topSize.Location.X, cPos); pos = cPos;
            panel2.Size = new System.Drawing.Size(this.panel2.Size.Width, pos);
            sz = pictureBox1.Size.Width;
            pictureBox1.Size = new System.Drawing.Size(pos - 4, pos - 4); pictureBox2.Size = new System.Drawing.Size(pos - 4, pos - 4); pictureBox3.Size = new System.Drawing.Size(pos - 4, pos - 4);
            pictureBox4.Size = new System.Drawing.Size(pos - 4, pos - 4); pictureBox5.Size = new System.Drawing.Size(pos - 4, pos - 4); pictureBox6.Size = new System.Drawing.Size(pos - 4, pos - 4);
            pictureBox7.Size = new System.Drawing.Size(pos - 4, pos - 4); pictureBox8.Size = new System.Drawing.Size(pos - 4, pos - 4); pictureBox9.Size = new System.Drawing.Size(pos - 4, pos - 4);
            pictureBox10.Size = new System.Drawing.Size(pos - 4, pos - 4);
          //topSize, это изображение за которое я тяну курсором
        }
Когда я его тяну, значки увеличиваются пропорционально, но их Location остаётся прежним: т.е. изображения начинают наслаиваться друг на друга, и получается вот это:

Как одновременно пропорционально увеличивать их, и при этом чтобы они красиво шли в рядок?
Я пробовал к каждой при изменении прибавлять их текущую локацию по Х + их размер + отступ, но выходило примерно тоже самое
Подскажите пожалуйста, как исправить?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.12.2014, 19:17
Ответы с готовыми решениями:

Установить кнопку пропорционально размеру формы
Подскажите как установить кнопку пропорционально размеру формы, т е если я разместил ее по центру, она была по центру даже при изменении...

Как изменить свойство Location у кнопки
Следующий код не срабатывает: button2.Location.X = 55; Как писать?

Не могу изменить свойство Location одной из форм
стоит открыть ее свойства опять - снова стоят нули. исправил, сохранил, открыл - нули. причем только в одной форме такое, все остальные...

6
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
30.12.2014, 21:28
Думаю, тебе стоит использовать FlowLayoutPanel
1
 Аватар для slenderface
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
30.12.2014, 21:50  [ТС]
ViterAlex, а что она даёт?

Добавлено через 8 минут
ViterAlex, я пробовал, но это не моё
он равняет все в один ряд, а мне необходимо расположение элементов такое как на картинке.
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
30.12.2014, 22:48
На картинке у тебя тоже всё в один ряд
1
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
31.12.2014, 09:09
slenderface, посмотри в сторону свойства Anchor

Добавлено через 56 секунд
ViterAlex, у него картинки с наложением друг на друга должны получится, как я понял
1
311 / 309 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
31.12.2014, 09:30
Лучший ответ Сообщение было отмечено slenderface как решение

Решение

А может вариант с узкими панелями, на которые накладывать Ваши картинки. А панели ужо на flowLayoutPanel.
1
 Аватар для slenderface
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
31.12.2014, 10:45  [ТС]
ViterAlex, правые картинки справа тоже есть + там ещё label
Цитата Сообщение от nio Посмотреть сообщение
посмотри в сторону свойства Anchor
Посмотрел Оно на Anchor всё держится, но не в нём дело...
Цитата Сообщение от kontuPauk Посмотреть сообщение
А может вариант с узкими панелями, на которые накладывать Ваши картинки. А панели ужо на flowLayoutPanel.
СПАСИБО. Отличная идея! сейчас попробую
Кстати, всех с наступающим НОВЫМ ГОДОМ!!!

Добавлено через 18 минут
kontuPauk, огромное спасибо!
ПоДоШлО!!!!!!!!!!!

Добавлено через 10 минут
Я наоборот наложил на главную панель 2 flowLayoutPanel: одна притягивает элементы налево, другая направо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.12.2014, 10:45
Помогаю со студенческими работами здесь

Расположение элементов экрана пропорционально его размеру
Всем привет! Подскажите, как сделать так, чтобы при использовании устройства, у которого меньше экран, элементы экрана не съезжали, а...

Масштабирование сайта пропорционально окну (размеру экрана)
Добрый день. Подскажите, пожалуйста, как сделать чтоб при изменении окна браузера (или статически на разных разрешениях экрана) сайт просто...

Изменять окно пропорционально
Добрый день! Подскажите пожалуйста, как сделать, чтобы высота окна (Window) изменялась пропорционально ширине окна? То есть мне нужно,...

Как пропорционально изменять размеры объектов на форме
Как пропорционально изменять размеры объектов на форме, чтобы они также изменялись вместе с изменением ширины и высоты формы? При этом низ...

Как пропорционально изменять ширину колонок DBGrid?
Спасибо, нашел. Удалил.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru