Как расположить форму и изменить ее размер (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, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Как запретить изменять размер формы?

Иногда требуется, чтобы пользователи не могли изменить размер окна программы. К примеру, интерфейс жёстко привязан к размерам родительского окна и при изменении размера окна приложения будет «поломан» интерфейс, если, конечно, не были прописаны методы масштабирования каждого компонента. Для простого приложения это не сложно сделать, но если это полноценная функциональная программа, то тут будет очень проблемно. Поэтому стоит позаботиться о запрете изменении размера формы.
Запрет изменение формы через свойство BorderStyle
В «Object Inspector» во вкладке Properties компонента Form есть свойство BorderStyle, которое определяет размер рамки и возможность изменения размера формы. Имеет несколько значений, из которых нужны следующие:
BorderStyle = bsDialog //Запрещает изменять размер формы, прячет кнопки «свернуть» и «развернуть» BorderStyle = bsToolWindow //Запрещает изменять размер формы, прячет кнопки «свернуть» и «развернуть» BorderStyle = bsSingle //Запрещает изменять размер формы
Запрет изменение формы через метод OnCanResize
В «Object Inspector» во вкладке «Events» компонента Form есть метод OnCanResize, который срабатывает при изменении размера формы.
void __fastcall TForm1::FormCanResize(TObject *Sender, int &NewWidth, int &NewHeight, bool &Resize)
В этом случае пользователю будет даваться возможность изменять размер формы приложения, но при изменении форма останется в прежнем размере.
запретить изменение размеров управляемой формы
Каким образом запретить пользователю изменение размеров управляемой формы. В обычном приложении у формы было свойство «Изменение размера».Для управляемой формы я такого свойства не нашел.Подскажите плз — где копать
По теме из базы знаний
- Создаем универсальный механизм отбора и сортировки для управляемых форм
- Печатные формы для БП 3.0: УПД, ТОРГ-12, Акт, Счет-фактура, Доверенность, Счет
- Консоль запросов для управляемых форм 8.3
- Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)
- Блокировка элементов справочников от изменений
- Дата
- Дата
- Рейтинг всех уровней
- Рейтинг 1-го уровня
- Древо развёрнутое
- Древо свернутое
Свернуть все
2. onyxxp 25.10.12 16:19 Сейчас в теме
Для управляемой формы блокировать изменение ее размеров к сожалению невозможно.
3. andrewks 1365 25.10.12 20:00 Сейчас в теме
на то она и управляемая, что нельзя запретить управление формой. как вы себе представляете такую форму, например, в веб-браузере?
Как запретить пользователю изменять размер формы?
Как отключить функцию «развернуть», что бы пользователь не могу развернуть прогу на весь экран? и убарть растянуть?
QunneD
Form1 > BorderIcons > biMaximize = False
Form1 > BorderStyle > bsSingle
Похожие статьи
- Определить размер форма в миллиметрах
- Задать свой обработчик событий у формы
- Расходование памяти формой
- Авторизация пользователя в программе
- Уничтожить Form1 при открытии Form2
- Как загрузить все картинки один раз при создании формы
- Перемещение формы не за заголовок
- Динамическое создание форм
- Получить значение переменной из одной формы в другой
- Создание формы приветствия
Купить рекламу на сайте за 1000 руб
пишите сюда — alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
- Форум Web программирование (веб)
-
- Форум Python (питон)
- Форум PHP (пхп)
- Форум Perl (перл)
- Форум Ruby (руби)
- Форум JavaScript (яваскрипт)
- Форум Ajax (аякс)
- Форум SQL (эскюэл)
- Форум HTML (хтмл)
- Форум CSS (сиэсэс)
- Форум XML (иксмл)
- Форум JSON (джсон)
- Форум Pascal (паскаль)
- Форум Delphi (делфи)
- Форум C++ (си плюс плюс)
-
- Форум C++ Builder (си билдер)
- Форум Visual C++ (визуал си)
- Форум .NET (точка нет)
- Форум ASP.NET (асп нет)
- Форум Windows Forms (виндовс формс)
- Форум базы данных ADO.NET (адо нет)
- Форум .NET Framework WPF, UWP, WinRT, XAML ()
- Форум Java Android (джава андроид)
- Форум Java web (джава веб)
- Форум Kotlin (котлин)
- Форум Assembler (ассемблер)
- Форум WinApi (вин апи)
- Форум Excel (эксель)
- Форум Word (ворд)
- Форум Access (аксесс)
- Форум по администрированию ОС
- Форум по администрированию серверов и VDS
- Форум Windows
- Форум Ubuntu
- Форум Android