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

Обратите внимание на рамку вокруг других элементов, содержащую текст «GroupBox Sample», проходящий по линии рамки — вот так выглядит и работает элемент GroupBox. Использование элемента GroupBox довольно просто и похоже на добавление ярлычка к вашему окну и какого-либо значащего текста в свойство Header:
Элемент GroupBox может содержать только один дочерний элемент, но это не вызывает проблем, так как вы можете добавить элемент Panel и уже в него остальные элементы, как, например, в диалоговом окне, представленном выше. Вот полный код XAML для этого примера диалога:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfTutorialSamples.Misc_controls"
mc:Ignorable="d"
Title="GroupBoxSample" Height="220" Width="300">
First name:
Last name:
Элемент GroupBox с произвольным заголовком
Заголовок элемента GroupBox обычно представляет собой простой, неформатированный текст, но что делать, если вы захотите сделать его покрасивее? Нет проблем, потому что, как и почти всё в WPF framework, вы можете заменить текст одним или несколькими другими элементами. Так, вы можете добавить элемент TextBlock и изменить его форматирование, например, цвет текста. Вы даже сможете, если захотите, добавить картинку, как это сделал я в следующем примере:

Теперь заголовок содержит картинку и жирный текст, и это так просто сделать:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfTutorialSamples.Misc_controls"
mc:Ignorable="d"
Title="GroupBoxSample" Height="220" Width="300">
GroupBox Sample
First name:
Last name:
Обратите внимание, что я просто заменил свойство Header элемента на тэг GroupBox.Header, содержащий элемент StackPanel, который в свою очередь содержит элементы Image и TextBlock. В результате мы получили полный контроль внешнего вида заголовка!
Заключение
Элемент WPF GroupBox упрощает группировку связанных элементов, что визуально напоминает внешний вид элементов операционной системы Windows.
This article has been fully translated into the following languages:
Is your preferred language not on the list? Click here to help us translate this article into your language!
DELPHI GROUPBOX УБРАТЬ РАМКУ
GroupBox — это элемент управления в Delphi, который является контейнером для других элементов управления. Его обычно используют для группировки связанных элементов на форме. Как правило, у элемента GroupBox есть рамка вокруг него, которая используется для выделения этого блока на форме. Однако, в некоторых случаях, по дизайну формы может понадобиться убрать рамку.
Для того, чтобы убрать рамку элемента GroupBox в Delphi, нужно установить свойство BorderStyle равным bsNone.
Это установит рамку GroupBox1 равной нулю и уберет ее со всех частей элемента, за исключением заголовка GroupBox.

81 — Trabajando con el Control GroupBox (C#)
C# : Determining checked Radiobutton from groupbox in WPF following MVVM
Delphi cxgrid checkbox and multiselect
Tutorial Programación Windows Forms C# 7 — RadioButton y GroupBox
Rad Studio Delphi 10.2 DBimage, DBmemo.
DELPHI Урок 6 Связи между таблицами (ADOQuery)
Уроки программирования в Lazarus. Урок №7. Работа с выподающими списками ComboBox и ListBox
Убрать рамку с groupbox c#
@Andrew это вообще не повод закрывать вопросы. Дух поднимает те вопросы, в которых нет ответов с рейтингом хотя бы 1. Достаточно просто плюсануть ответ.
– user177221
12 окт 2019 в 21:36
@Andrew можете дать ссылку, где именно? (Upd, ок если нет). Вообще вопросы стоит закрывать только если для ответа нужна правка от автора (именно от автора, доп инфа, например), или если вопрос — оффтопик. Вот тема на мете: ru.meta.stackoverflow.com/q/1936/177221
– user177221
12 окт 2019 в 21:57
@PashaPash нужно искать по истории браузера за несколько недель. на 2х компьютерах. я не помню как тема называлась — я на нее тогда нечаянно набрел =( Если очень нужно — поищу. Но чесно — этим заниматся влом.Если отпишешь что оч нужно — завтра выделю время и найду