Как изменить размер формы в c
Перейти к содержимому

Как изменить размер формы в c

Как расположить форму и изменить ее размер (Windows Forms .NET)

При создании формы размер и расположение изначально задаются как значения по умолчанию. Размер формы по умолчанию обычно имеет ширину и высоту 800 x 500 пикселей. Начальное расположение, отображаемое при отображении формы, зависит от нескольких различных параметров.

Изменить размер формы можно во время разработки с помощью Visual Studio, а также во время выполнения с помощью кода.

Документация по рабочему столу для .NET 7 и .NET 6 находится в стадии разработки.

Изменение размера с помощью конструктора

После добавления новой формы в проект размер формы задается двумя разными способами. Во-первых, для него можно задать маркеры изменения размера в конструкторе. Перетаскивая правый край, нижний край или угол, можно изменить размер формы.

Right click solution explorer to add new form to windows forms project with grips

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

Right click solution explorer to add new form to windows forms project

Изменение размера в коде

Несмотря на то, что начальный размер формы задается в конструкторе, его можно изменить с помощью кода. Использование кода для изменения размера формы полезно, когда в каком-либо приложении размера формы по умолчанию недостаточно.

Чтобы изменить размер формы, измените свойство 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 содержит текущее положение в форме. Оба свойства можно задать с помощью конструктора.

visual studio properties pane with start position highlighted

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

.NET Desktop feedback

The .NET Desktop documentation is open source. Provide feedback here.

Обратная связь

Отправить и просмотреть отзыв по

Как изменить размер формы в c

Форумчанин

Регистрация: 25.04.2010

Сообщений: 881

Изменить размер окна

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) < double d,a,x2,y2,h; double *res; int size; Form1->Height = 299; Circle sCircle1, sCircle2; >

в виделеной строке вылетает ошибка:
Error 1 error C2143: syntax error : missing ‘;’ before ‘->’
Как исправить можно?

Форумчанин

Регистрация: 11.07.2010

Сообщений: 914

Видимо, Form1 — это не указатель, а тип.
button1_Click — это ведь метод класса Form1
Значит достаточно просто Height = 299;

Настройка размера формы Windows Forms

Добавление фоновых изображений в формы Windows Forms.

При создании форм Windows Forms иногда нужно поместить фоновый рисунок на элемент управления или на саму форму. Для этого можно использовать настройки, задаваемые в окне Свойства. Чтобы добавить фоновый рисунок в форму Windows Forms, выполните следующие действия.

  1. Щелкните свойство BackgroundImage в окне Свойства формы. Нажмите кнопку с многоточием () для открытия диалогового окна Выбор ресурса.
  2. Щелкните Импорт для открытия диалогового окна Открытие файла. Перейдите в папку, в которой находится файл рисунка (с расширением BMP). Нажмите кнопку Открыть, чтобы открыть файл.

Обратите внимание, что выбранный файл теперь находится в списке Файла ресурсов проекта, а рисунок отображается в окне Предварительный просмотр.

  1. Нажмите кнопку ОК, чтобы импортировать рисунок как ресурс. Обратите внимание, что теперь рисунок будет отображаться в форме. Управлять внешним видом рисунка в форме можно с помощью свойства BackgroundImageLayout.

Обратите внимание, что в проекте появилась папка Ресурсы (в обозревателе решений), в которую скопирован рисунок. Примечание. Если выбрать Локальный ресурс, то папка Resoures не будет создана, а в проекте будет храниться ссылка на файл с рисунком. При выборе опции Файл ресурсов проекта создается в папке с проектом новая папка под названием Resoures, в которую копируется выбранных графический файл. Чтобы удалить фоновый рисунок из формы Windows Forms в окне Свойства щелкните правой кнопкой мыши кнопку с многоточием () для свойства BackgroundImage и выберите Сброс.

        1. Отображение модальных и немодальных форм Windows Forms

Формы и диалоговые окна могут быть модальными и немодальными. Модальная форма или диалоговое окно должно быть закрыто или спрятано перед продолжением работы с другими формами приложения. Диалоговые окна, в которых отображаются важные сообщения, должны всегда быть модальными. Немодальные формы позволяют переключаться между формами без необходимости закрывать начальную форму. Пока отображается форма, пользователь может продолжать работу в любом другом месте приложения. Чтобы отобразить форму как модальное диалоговое окно вызовите метод ShowDialog. В следующем примере кода показан способ отображения модального диалогового окна. glob.frm2.ShowDialog(); В методе ShowDialog существует необязательный аргумент owner , который можно использовать в форме для определения отношения «главный-подчиненный». Например, когда с помощью кода в главной форме отображается диалоговое окно, в качестве значения аргумента owner диалогового окна можно передать значение this , чтобы определить, что главная форма является владельцем. Это показано в следующем примере. glob.frm2.ShowDialog(this);Чтобы отобразить форму как немодальное диалоговое окно вызовите метод Show. В следующем примере показан способ отображения диалогового окна в немодальном формате. glob.frm2.Show();Примечание. При отображении модальной формы код, следующий после метода ShowDialog, не выполняется до тех пор, пока не будет закрыто диалоговое окно. При отображении немодальной формы код, следующий после метода Show, выполняется немедленно после отображения формы.

Не меняется размер формы

Стартовая форма в проекте не дает изменить свой размер по высоте, остановившись на значении в 1100 (нужно 1392) точек. При изменении в свойствах минимальный размер не меняется, добавление значений в код не помогает, как и растягивание формы. При этом остальные формы спокойно достигают нужного размера.введите сюда описание изображениявведите сюда описание изображения

Отслеживать
задан 2 окт 2020 в 9:25
13 1 1 бронзовый знак

Если оставить код, как на скриншоте, и попробовать поменять размеры через свойства формы, то значения в коде меняются на те, что в свойствах

2 окт 2020 в 10:11
2 окт 2020 в 10:50

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Возможно это как-то связано с разрешением вашего экрана. WinForms не такой адаптивный в плане визуализации, он очень привязан к текущей системе. Вот, например, я попытался выставить те же значения для свойств, что у вас, но почему-то минимальный размер падает до 726, а сам размер формы падает до 788. Разрешение моего экрана: 1366×768. Для своих целей лучше используйте WPF.

введите сюда описание изображения

Подключил телевизор с разрешением 1920×1080 к ноутбуку. И вот результат:

введите сюда описание изображения

P.S. В WPF эти же значения выставляются без проблем.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *