Как расположить форму и изменить ее размер (Windows Forms .NET)
При создании формы размер и расположение изначально задаются как значения по умолчанию. Размер формы по умолчанию обычно имеет ширину и высоту 800 x 500 пикселей. Начальное расположение, отображаемое при отображении формы, зависит от нескольких различных параметров.
Изменить размер формы можно во время разработки с помощью Visual Studio, а также во время выполнения с помощью кода.
Документация по рабочему столу для .NET 7 и .NET 6 находится в стадии разработки.
Изменение размера с помощью конструктора
После добавления новой формы в проект размер формы задается двумя разными способами. Во-первых, для него можно задать маркеры изменения размера в конструкторе. Перетаскивая правый край, нижний край или угол, можно изменить размер формы.

Второй способ изменения размера формы — в конструкторе на панели «Свойства». Выберите форму, а затем найдите панель Свойства в Visual Studio. Прокрутите вниз до раздела Размер и разверните его. Можно вручную задать параметры Ширина и Высота.

Изменение размера в коде
Несмотря на то, что начальный размер формы задается в конструкторе, его можно изменить с помощью кода. Использование кода для изменения размера формы полезно, когда в каком-либо приложении размера формы по умолчанию недостаточно.
Чтобы изменить размер формы, измените свойство Size, которое представляет ширину и высоту формы.
Изменение размера текущей формы
Размер текущей формы можно изменить, пока код выполняется в контексте формы. Например, если имеется Form1 с кнопкой, то при нажатии на нее вызывается обработчик событий Click для изменения размера формы:
private void button1_Click(object sender, EventArgs e) => Size = new Size(250, 200);
Private Sub Button1_Click(sender As Object, e As EventArgs) Size = New Drawing.Size(250, 200) End Sub
Изменение размера другой формы
Размер другой формы можно изменить после ее создания с помощью переменной, ссылающейся на форму. Например, предположим, что у вас есть две формы: Form1 (начальная форма в этом примере) и Form2 . В Form1 имеется кнопка, которая при нажатии вызывает событие Click . Обработчик этого события создает новый экземпляр формы Form2 , задает размер, а затем отображает его:
private void button1_Click(object sender, EventArgs e)
Private Sub Button1_Click(sender As Object, e As EventArgs) Dim form = New Form2 With < .Size = New Drawing.Size(250, 200) >form.Show() End Sub
Если свойство Size не задано вручную, размер формы по умолчанию — это размер, заданный во время разработки.
Расположение с помощью конструктора
При создании и отображении экземпляра формы начальное расположение формы определяется свойством StartPosition. Свойство Location содержит текущее положение в форме. Оба свойства можно задать с помощью конструктора.

| Перечисление FormStartPosition | Description |
|---|---|
| CenterParent | Форма находится в пределах родительской формы. |
| CenterScreen | Форма располагается по центру текущего экрана. |
| Вручную | Положение формы определяется свойством Расположение. |
| WindowsDefaultBounds | Форма размещается в расположении Windows по умолчанию и ее размер подгоняется под размер по умолчанию, который определен Windows. |
| WindowsDefaultLocation | Форма размещается в расположении Windows по умолчанию и не изменяется. |
Значение CenterParent работает только с формами, которые являются либо дочерними формами многодокументного интерфейса (MDI), либо обычными формами, отображаемыми с помощью метода ShowDialog. CenterParent не влияет на обычную форму, которая отображается с помощью метода Show. Чтобы разместить форму по центру (переменная form ) другой формы (переменная parentForm ), используйте следующий код:
form.StartPosition = FormStartPosition.Manual; form.Location = new Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X, parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y); form.Show();
form.StartPosition = Windows.Forms.FormStartPosition.CenterParent.Manual form.Location = New Drawing.Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X, parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y) form.Show()
Расположение с помощью кода
Несмотря на то, что для задания начального расположения формы можно использовать конструктор, изменить режим начальной позиции или задать расположение вручную можно с помощью кода. Использование кода для расположения формы полезно, если необходимо вручную разместить форму и изменить ее размер относительно экрана или других форм.
Перемещение текущей формы
Переместить текущую форму можно, пока код выполняется в контексте формы. Например, если имеется Form1 с кнопкой, то при нажатии на нее вызывается обработчик событий Click . Обработчик в этом примере изменяет расположение формы на верхнюю левую часть экрана путем задания свойства Location:
private void button1_Click(object sender, EventArgs e) => Location = new Point(0, 0);
Private Sub Button1_Click(sender As Object, e As EventArgs) Location = New Drawing.Point(0, 0) End Sub
Расположение другой формы
Расположение другой формы можно изменить после ее создания с помощью переменной, ссылающейся на форму. Например, предположим, что у вас есть две формы: Form1 (начальная форма в этом примере) и Form2 . В Form1 имеется кнопка, которая при нажатии вызывает событие Click . Обработчик этого события создает новый экземпляр Form2 формы и задает расположение:
private void button1_Click(object sender, EventArgs e)
Private Sub Button1_Click(sender As Object, e As EventArgs) Dim form = New Form2 With < .Location = New Drawing.Point(0, 0) >form.Show() End Sub
Если значение Location не задано, позиция формы по умолчанию основана на том, что StartPosition свойство было задано во время разработки.
См. также
- Как добавить форму в проект (Windows Forms .NET)
- Общие сведения о событиях (Windows Forms .NET)
- Размещение и компоновка элементов управления (Windows Forms .NET)
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Как запретить изменение размеров ?
Сделать, чтобы размеры текстового поля созданного через тег не изменялись при помощи мыши.
Решение
В современных браузерах Firefox, Safari и Chrome в правом нижнем углу текстового поля есть небольшой уголок (рис. 1) с помощью которого мышью можно изменить размеры поля.

Рис. 1. Вид текстового поля в браузере Chrome
Вид уголка различается, но его функции остаются одинаковыми, если щёлкнуть мышью и потянуть за уголок, то можно изменить размеры поля. Чтобы запретить эту возможность, следует для селектора textarea задать свойство resize со значением none (пример 1).
Пример 1. Использование resize
HTML5 CSS3 IE Cr Op Sa Fx
Размеры текстового поля
Как сделать чтобы форма не растягивалась c
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Пользователь
Регистрация: 12.05.2009
Сообщений: 43
Что интересно в свойствах я это уже делал эфекта ноль, форма как растягивалась так и продолжает.
У меня delphi 2007. Кто еще что может посоветовать?
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
Сообщение от girz
Что интересно в свойствах я это уже делал эфекта ноль, форма как растягивалась так и продолжает.
У меня delphi 2007. Кто еще что может посоветовать?
Не может того быть !
Тогда подробнее объясни чего ты хочешь от формы при запуске ?
Может тебе нужно задать определенные размеры формы или ограничить ее размеры при изменении (т.е. задать минимальный и максимальный размер) ?
«Заряженному танку в дуло не смотрят» @Dekmer in WoT
Пользователь
Регистрация: 13.07.2008
Сообщений: 45
У меня тоже стоит Delphi 2007 , вот решение:
1)Если ты хочешь чтоб его можно было развернуть , но не изменить размеры то — в инспекторе находишь Visual ,потом там изменяешь значение BorderStyle на bsSingle
2)Если ты хочешь чтоб там вообше не можно было -бы развернуть окно и поменять размер то ешё раз етот же BorderStyle меняешь на bsSizeToolWin
Пользователь
Регистрация: 12.05.2009
Сообщений: 43
Все теперь разобрался, у меня почему то если создаешь новый проект работает, а именно в моей програмке нет. Пришлось через 7 версию грузить, все сделал теперь работает. Всем большое спасибо.
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| как запретить раскрытие формы | Анастасия123456789 | Помощь студентам | 3 | 21.04.2009 11:53 |
| Как запретить изменение рамера главного окна? | AlexeyLed | Общие вопросы C/C++ | 1 | 18.03.2009 21:12 |
| как запретить изменение текстового файла на delphi | BuT@JL | Помощь студентам | 1 | 28.02.2009 05:35 |
| как в ХР запретить установку и удаление програм и изменение параметров дисплея? | Dinya | Безопасность, Шифрование | 2 | 21.12.2008 21:30 |
| Изменение размера шрифта выводимого текста в консоле, как побороть? | Artefact | Qt и кроссплатформенное программирование С/С++ | 0 | 26.02.2008 00:28 |
Как сделать чтобы форма не растягивалась c
(2) при чем тут это? поведение элементов изменилось изменилось в 8.3.7, которая не 10 лет 4 месяца 28 дней назад вышла.
» не растягиваются элементы формы на всю ширинку»
Попробуйте, не знаю, заузить как-то ширинку что0ли.
(2) тогда зачем оставили в свойствах растягивать по горизонтали «Да» — если всё-равно не растягивается.
(4) разработчики платформы это уже за нас сделали, заужено.
«Мне — в этом мундире? В однобортном? Да вы что? Не знаете, что в однобортном сейчас уже никто не воюет? Безобразие! Война у порога, а мы не готовы!». (С)
(7) а если серьезно?
(0) Это баг, вроде, планируется фиксить. Сейчас можно заставить растягиваться, не помню какие флаги точно надо.
(9) спс, хоть один нормальный человек остался на этом форуме — остальные клоуны.
(10) Что поделаешь, Тяпница.
Теперь по умолчанию элементы не растягиваются.
Некоторые вообще съедаются, например кнопка Печать. Подстраивайся. Делай меньше шрифт на сколько можно в Виндосе.
Опять же монитор ставь прямоугольный и подбирай по нему разрешение.
(13) шрифт то ладно, все формы разъезжаются
(12) а не по умолчанию как сделать? выставляю растягивать по горизонтали — не растягивает.
P.S. (9) в списке зарегистрированных ошибок не нашел, перечитал все. 🙁
АвтоМаксимальнаяШирина (AutoMaxWidth)
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Определяет использование автоматического ограничения максимальной ширины элемента.
Истина — автоматическое ограничение используется
Нужно поставить Ложь.
P.S. Кто и по какому обкуру решил что это ошибка — я не знаю.