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

Увеличение элементов формы при условии

12.02.2017, 15:06. Показов 5578. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Внутри формы есть элементы, они имеют фиксированные размеры, нужно чтобы их размеры подстраивались под размер формы. Когда форма развернута, кнопки и другие элементы должны увеличиться. Помогите
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.02.2017, 15:06
Ответы с готовыми решениями:

Разрешить закрытие формы при условии, что все другие формы закрыты
Нужно создать событие, при котором приложение не завершается, пока все формы не будут закрыты. private void frMain_FormClosing(object...

Увеличение формы при наведении мыши
Доброго времени! Пишу часы для себя и хочу добавить курс валют, но так чтобы они были видны когда я хочу, пример: в обычном режиме видно...

Как реализовать смену фона формы при определенном условии?
Всем :senor: ... Дело было так... писал я значит код и столкнулся с проблемой. Сделал LangPack из которого берется инфа по локализации. Тут...

9
33 / 33 / 18
Регистрация: 16.09.2015
Сообщений: 246
12.02.2017, 16:11
Что то в таком духе
C#
1
2
3
int width = this.Width;
if (label1.Width > width)
 label1.Width = width - 15;
выносим в отдельную функцию которую вызываем например при событии изменении размеров формы
1
1 / 1 / 1
Регистрация: 14.10.2016
Сообщений: 64
12.02.2017, 16:16  [ТС]
Цитата Сообщение от aurisdies Посмотреть сообщение
label1.Width = width - 15;
Что означает это строка? Конкретно вот этот момент интересует: width - 15
0
33 / 33 / 18
Регистрация: 16.09.2015
Сообщений: 246
12.02.2017, 16:20
Цитата Сообщение от azat567567 Посмотреть сообщение
Что означает это строка?
возможно я неправильно её записал, ведь я уже который год не писал ничего на c#, но смысл таков:
ширина контрола label1 = переменная width минус 15 пикселей, где width это ширина формы this
1
1 / 1 / 1
Регистрация: 14.10.2016
Сообщений: 64
12.02.2017, 16:33  [ТС]
В принципе разобрался, но в строке с if, наверное он должен проверять, изменилось ли значение width, если да, то он должен будет увеличить мне button.
Короче, как проверку сделать, увеличился ли width?
0
33 / 33 / 18
Регистрация: 16.09.2015
Сообщений: 246
12.02.2017, 16:35
Лучший ответ Сообщение было отмечено azat567567 как решение

Решение

Цитата Сообщение от azat567567 Посмотреть сообщение
Короче, как проверку сделать, увеличился ли width?
по событию формы, какие там есть события? OnResize есть? OnMaximize? так вотд если произошло это событие, просто вызвать данную функцию, где уже произоидут эти действия.


Вот на msdn нашел что есть событие:
Code
1
Resize - Происходит при изменении размеров элемента управления.(Наследуется от Control.)
подписываемся на него и проверяем/корректируем размеры твоей кнопки
1
1 / 1 / 1
Регистрация: 14.10.2016
Сообщений: 64
12.02.2017, 16:48  [ТС]
Тогда следующий вопрос, как вызвать событие OnMaximized?
я как понял мне нужно что -то вроде этого
C#
1
2
if (OnMaximumSizeChanged)
button2.Width = width + 15;
но как правильно записать вызов события?

Добавлено через 3 минуты
Цитата Сообщение от aurisdies Посмотреть сообщение
подписываемся на него
Как это сделать?
0
33 / 33 / 18
Регистрация: 16.09.2015
Сообщений: 246
12.02.2017, 16:49
Лучший ответ Сообщение было отмечено azat567567 как решение

Решение

Цитата Сообщение от azat567567 Посмотреть сообщение
но как правильно записать вызов события?
не не, не так. Нужно подписаться на событие. В конструкторе формы, в окне свойств смотри сверху кнопки есть, на одной из них молния нарисована, нажмёшь и переключишся на список событий, там выберишь нужное и дважды счёлкни по пустой строке рядом с событием, таким образом студия создаст обработчик события и подписку на него в разделе InitializeComponent(), а тебе останется только наполнить кодом созданный студией обработчик
1
1 / 1 / 1
Регистрация: 14.10.2016
Сообщений: 64
12.02.2017, 17:45  [ТС]
Спасибо огромное, наконец таки все получилось как надо, очень помог

Добавлено через 24 минуты
Цитата Сообщение от aurisdies Посмотреть сообщение
наполнить кодом
Еще одна проблема нарисовалась, я думал локацию буду менять таким же образом:
C#
1
2
3
int width = this.Width;
if (width >= 270)
button2.Location = (10, 20);
аа ннет, не хочет.. При расширении формы как локацию для элементов менять?

Добавлено через 11 минут
А всё, понял как) надо было дописать : button2.Location = new Point(10, 20);
0
33 / 33 / 18
Регистрация: 16.09.2015
Сообщений: 246
12.02.2017, 17:47
Цитата Сообщение от azat567567 Посмотреть сообщение
аа ннет, не хочет.. При расширении формы как локацию для элементов менять?
Думаю этот вопрос к программированию не относится, тебе нужно только технологию просчёта придумать так? Я бы перевёл все размеры формы в проценты и отталкивался от них.
Что касается вашего кода то наверное правильно будет так:
C#
1
button2.Location = System.Drawing.Point(10, 20)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2017, 17:47
Помогаю со студенческими работами здесь

Создание формы при условии
Здравствуйте, пишу проект, столкнулся с задачей собственного производства, необходимо формe, допустим, form3, вызывать с двух других...

Отправка формы при определённом условии
Уважаемые форумчане. Есть такой вопрос! У меня есть некая форма (к примеру страница создания анкеты). Есть задача. При нажатии на...

Увеличение обьекта frame при увеличении формы
Здравствуйте. Подскажите плиз правильно ли я делаю. Мне надо что бы при увеличении формы обьект frame1 увеличивался Frame1.Width =...

Как найти для этих условии 2 парных чисел а и b при котором выполняется все условии?
Мой пример кода был таким данный момент но не работал. В экране пустота. Ничего не выводится. Где у меня ошибка? Чего исправит? static...

Удаление элементов List<string> при условии, что он не пустой
Создаю контейнер, а как написать функцию которая будет находиться в файле program.cs и вызывать ее в кнопке &quot;удалить контейнер&quot;? ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера 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