Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
23 / 10 / 1
Регистрация: 08.10.2015
Сообщений: 386

Динамическое изменение размеров панели

04.11.2018, 13:57. Показов 2084. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
У меня на форме есть две панели. Первая (Canvas): Anchor all.Вторая (Settings): Anchor Top Bottom Right. Расстояние между панелями 20 пикселей.
Когда я сворачивую форму, первая панель сжимается, но остаётся на расстоянии 20 пикселей от второй панели.
Потом я пытаюсь изменить размер панели первой формы.
Использую следующий код (высота здесь не настроена, только ширина):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Canvas.MinimumSize = new Size(((SaveImage.Width < CanvasMinWidth) ?
                                                           SaveImage.Width + 2
                                                           : CanvasMinWidth),
                                             (SaveImage.Height < CanvasMinHeight) ?
                                                           SaveImage.Height + 2
                                                           : CanvasMinHeight);
                if (SaveImage.Width < CanvasWidth) {
                    Canvas.Width = (SaveImage.Width + 2 < ClientSize.Width - 60 - Settings.Width) ? SaveImage.Width + 2 : ClientSize.Width - 60 - Settings.Width;
                    Canvas.MaximumSize = new Size(SaveImage.Width + 2, Canvas.MaximumSize.Height);
                }
                else
                {
                    Canvas.Width = CanvasWidth + 2;
                    Canvas.MaximumSize = new Size(0, 0);
                }
                
                if (SaveImage.Height < CanvasHeight)
                    Canvas.Height = SaveImage.Height + 2;
                else
                    Canvas.Height = CanvasHeight + 2;
Константы:
SaveImage.Width = 700, SaveImage.Height = 300, CanvasWidth = 1096, CanvasHeight=503 ,CanvasMinWidth =514 ,CanvasMinHeight =392 ,Setting.Width = 210.
Если форма открыта не на максимальный размер, всё работает нормально( панель растягивается и сжимается в свёрнутой форме), но если создать панель в форме максимального размера, то она уже не тянется (не растягивается на полный размер, хотя место есть).

Как это можно исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2018, 13:57
Ответы с готовыми решениями:

Динамическое изменение размеров формы
Всем доброго времени суток. Имеется форма, на которой может быть до 10 графиков ZedGraph. Перед этим вводится число графиков, которые...

Динамическое изменение размеров элементов управления
На форме по вертикали горизонтально размещены DataGridView, а под ним ListView. Как сделать между ними ползунок, чтобы при его...

Изменение размеров элементов, при изменение размеров формы
Доброго времени суток, подскажите, как в VS2016 реализовать подобное, а именно: Имеются следующая форма: С нижним текстбоксом я...

2
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
04.11.2018, 16:22
HitGirl, а исправить очень просто:
Киньте на форму компонент TableLayoutPanel, и разместите Ваши панели на ней.
0
23 / 10 / 1
Регистрация: 08.10.2015
Сообщений: 386
04.11.2018, 17:44  [ТС]
Цитата Сообщение от ashsvis Посмотреть сообщение
Киньте на форму компонент TableLayoutPanel
слишком много придётся переделывать.
Правка к первому посту: Ошибка возникает, если на момент изменения размеров панели расстояние между первой и второй панели больше 20 пикселей. Тогда при уменьшении размеров у первой панели сразу появляется скролл, а нужно чтобы вторая панель сначала вторая приблизилась к первой на расстояние 20 пикселей, а потом добавлялся скролл у первой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.11.2018, 17:44
Помогаю со студенческими работами здесь

Изменение размеров элементов, сохраняя пропорции, при изменении размеров самой формы
Как изменять размеры элементов, сохраняя пропорции, при изменении размеров самой формы?

Изменение размеров элементов управления с изменением размеров формы
подскажите, как сделать так чтобы размер элементов управления изменялся пропорционально размерам формы. всё дело в том что я не знаю на...

Изменение цвета панели на другой панели
Доброго времени суток, нужна помощь, ситуация следующая: Имеется форма(Допустим форма1), на форме есть панель(Допустим панель1), на...

Панели изменяемых размеров
Как создать Панели изменяемых размеров, чтобы за уголки можно было растягивать...

Динамическое создание listbox и отображение его на панели
Извините за такой тупой вопрос, но я честно гуглил и не нашел. В моем классе есть метод Draw, он вызывается из формы,которая передает...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
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