как задать размер формы c
Практическое руководство. Изменение размера формы в Windows Forms
Размер формы Windows Forms можно указать несколькими способами. Вы можете изменить высоту и ширину формы программными средствами, задав новое значение для свойства Size или изменив свойства Height или Width по отдельности. если вы используете Visual Studio, можно изменить размер с помощью конструктор Windows Forms. см. также руководство. изменение размера Windows Forms с помощью конструктора.
Программное изменение размера формы
Чтобы определить размер формы во время выполнения, задайте свойство Size формы.
В примере кода ниже размер формы устанавливается равным 100 × 100 пикселей.
Программное изменение ширины и высоты формы
Определив свойство Size, измените высоту или ширину формы с помощью свойств Width или Height.
В примере кода ниже для ширины формы устанавливается значение 300 пикселей, отсчитываемое от левого края формы. Высота остается неизменной.
Измените Width или Height, задав свойство Size.
Однако в примере ниже показано, что этот подход является более громоздким, чем просто задание свойств Width или Height.
Изменение размера формы с помощью приращений программными средствами
Для увеличения размера формы задайте свойства Width или Height.
В примере ниже ширина формы увеличивается на 200 пикселей по сравнению с первоначальным значением.
Всегда используйте свойство Height или Width для изменения размеров формы, если вы не устанавливаете значения высоты и ширины одновременно, присваивая свойству Size новую структуру Size. Свойство Size возвращает структуру Size, которая является типом значения. Присвоить новое значение свойству типа значения нельзя. Поэтому приведенный ниже пример кода компилироваться не будет.
При создании формы размер и расположение изначально задаются как значения по умолчанию. Размер формы по умолчанию обычно имеет ширину и высоту 800 x 500 пикселей. Начальное расположение, отображаемое при отображении формы, зависит от нескольких различных параметров.
Изменить размер формы можно во время разработки с помощью Visual Studio, а также во время выполнения с помощью кода.
Изменение размера с помощью конструктора
После добавления новой формы в проект размер формы задается двумя разными способами. Во-первых, для него можно задать маркеры изменения размера в конструкторе. Перетаскивая правый край, нижний край или угол, можно изменить размер формы.
Второй способ изменения размера формы — в конструкторе на панели «Свойства». Выберите форму, а затем найдите панель Свойства в Visual Studio. Прокрутите вниз до раздела Размер и разверните его. Можно вручную задать параметры Ширина и Высота.
Изменение размера в коде
Несмотря на то, что начальный размер формы задается в конструкторе, его можно изменить с помощью кода. Использование кода для изменения размера формы полезно, когда в каком-либо приложении размера формы по умолчанию недостаточно.
Чтобы изменить размер формы, измените свойство Size, которое представляет ширину и высоту формы.
Изменение размера текущей формы
Размер текущей формы можно изменить, пока код выполняется в контексте формы. Например, если имеется Form1 с кнопкой, то при нажатии на нее вызывается обработчик событий Click для изменения размера формы:
Изменение размера другой формы
Если свойство Size не задано вручную, размер формы по умолчанию — это размер, заданный во время разработки.
Расположение с помощью конструктора
При создании и отображении экземпляра формы начальное расположение формы определяется свойством StartPosition. Свойство Location содержит текущее положение в форме. Оба свойства можно задать с помощью конструктора.
Перечисление FormStartPosition | Описание |
---|---|
CenterParent | Форма располагается в центре родительской формы. |
CenterScreen | Форма располагается по центру текущего экрана. |
Вручную | Положение формы определяется свойством Расположение. |
WindowsDefaultBounds | Форма размещается в расположении Windows по умолчанию и ее размер подгоняется под размер по умолчанию, который определен Windows. |
WindowsDefaultLocation | Форма размещается в расположении Windows по умолчанию и не изменяется. |
Значение CenterParent работает только с формами, которые являются либо дочерними формами многодокументного интерфейса (MDI), либо обычными формами, отображаемыми с помощью метода ShowDialog. CenterParent не влияет на обычную форму, которая отображается с помощью метода Show. Чтобы разместить форму по центру (переменная form ) другой формы (переменная parentForm ), используйте следующий код:
Расположение с помощью кода
Несмотря на то, что для задания начального расположения формы можно использовать конструктор, изменить режим начальной позиции или задать расположение вручную можно с помощью кода. Использование кода для расположения формы полезно, если необходимо вручную разместить форму и изменить ее размер относительно экрана или других форм.
Перемещение текущей формы
Расположение другой формы
Если свойство Size не задано, размер формы по умолчанию — это размер, заданный во время разработки.
Form. Size Свойство
Определение
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает размер формы.
Значение свойства
Объект Size, представляющий размер формы.
Примеры
В следующем примере показано, как создать форму, которая отображается с уровнем непрозрачности 75%. В примере кода создается новая форма, которая располагается в центре экрана с Opacity заданным свойством для изменения уровня непрозрачности формы. В примере кода также задается Size свойство для увеличения размера формы, чем размер по умолчанию для формы. В этом примере требуется, чтобы метод, определенный в этом примере, вызывался из другой формы в обработчике событий или в другом методе.
Комментарии
Это свойство позволяет одновременно задать высоту и ширину (в пикселях) формы, а не задавать Height Свойства и по Width отдельности. Если вы хотите задать размер и расположение формы, можно использовать DesktopBounds свойство для изменения размера и расположения формы на основе координат рабочего стола или с помощью Bounds свойства Control класса, чтобы задать размер и расположение формы на основе экранных координат.
Максимальное значение этого свойства ограничивается разрешением экрана, на котором выполняется форма. Значение не может превышать 12 пикселей для каждого измерения экрана (по горизонтали + 12 и по вертикали + 12).
на карманный ПК устройствах можно создать окно с изменяемым размером, установив FormBorderStyle None и удалив любой MainMenu элемент управления. На смартфонах можно никогда не изменять размер, Form так как всегда будет заполнен весь экран.
Как изменить размеры формы до размеров экрана во время инициализации?
Будьте добры, подскажите как можно изменить размеры формы до размеров экрана во время инициализации.
В закладке MainForm.cs получаю даные о разрешении экрана:
А вот каким образом задать полученные размеры x и y в дизайнере для формы никак не могу врубиться.
Заранее благодарен
Вадим
Добавлено через 41 минуту
Спасибо Всем. Разобрался.
Как изменить размеры формы?
Доброго времени суток! Подскажите пожалуйста, как изменить размеры второстепенной формы не из.
Как изменять размеры контрола совместно с изменением размеров формы?
Всем здравствуйте. Есть Picturebox с Dock = None. Границы Picturebox не касаются границ формы.
Как сделать так, чтобы при изменении размеров формы компоненты на форме тоже изменяли свои размеры?
Если форма развернута на весь экран, то все компоненты выглядят как нужно (см.скрин 1), а если окно.
В новом UI подстроить слайдер и его ползунок под любое разрешение экрана и как у ползунка изменить размеры?
Уважаемые знатоки Unity! Переписываю игру со старого UI на новый. Как в новом UI подстроить.
Дело в том, что я недавно начал изучать C# и поэтому многие вещи для меня новые.Стараюсь понять, что за чем на практике, а так же пытаюсь найти ответы в книгах, но к сожалению не всегда получается.
В связи с этим и возникают такие вопросы, которые порой для профи являются смешными или глупыми.
Често говоря не не понял, что значит развернуть форму.
У меня в коде Дизайнера свойство формы ClientSize выглядит так:
Все заработало, да только вот начало появляться проедупреждение в Дизйнере о том, что переменная x не задекларирована, хотя она объявлена в таком же partial классе только в другой заладке.
Автоматическое масштабирование позволяет форме и ее элементам управления, разработанным на одном компьютере с использованием определенного разрешения или шрифтов, правильно отображаться на другом компьютере с другим разрешением или шрифтом. Оно гарантирует, что размеры формы и ее элементов управления будут изменяться автоматически в соответствии с приложениями Windows и другими приложениями на компьютерах пользователя и разработчика. Автоматическое масштабирование и стили оформления позволяют приложениям Windows Forms сохранять согласованный внешний вид и поведение на различных компьютерах пользователей, так же как в случае с обычными приложениями Windows.
В большинстве случаев автоматическое масштабирование работает должным образом в Windows Forms. Однако внесение изменений в схему шрифтов может быть проблематичным.
Потребность в автоматическом масштабировании
Без автоматического масштабирования приложения, разработанные для определенного разрешения экрана или шрифта, будут выглядеть либо слишком маленькими, либо слишком большими при изменении разрешения или шрифта. Например, если приложение разработано с использованием базового шрифта Tahoma размером 9 пунктов, то без коррекции оно будет выглядеть слишком маленьким при запуске на компьютере, на котором в качестве системного шрифта используется Tahoma размером 12 пунктов. Текстовые элементы, такие как заголовки, меню, содержимое текстовых полей и т. д., будут меньше, чем в других приложениях. Более того, размер содержащих текст элементов пользовательского интерфейса, таких как строки заголовков, меню и т. д., зависит от используемого шрифта. В рассматриваемом примере эти элементы также будут выглядеть относительно меньше.
Аналогичная ситуация возникает, когда приложение разработано для определенного разрешения экрана. Наиболее распространенное разрешение экрана — 96 точек на дюйм (DPI), что соответствует 100 % масштабирования экрана, однако все более распространенными становятся более высокие разрешения, включая 125 %, 150 %, 200 % (что соответствует 120, 144 и 192 DPI) и выше. Без коррекции приложение, особенно графическое, разработанное для одного разрешения, будет отображаться либо слишком большим, либо слишком маленьким при запуске с другим разрешением.
Автоматическое масштабирование предназначено для решения таких проблем путем автоматического изменения размеров формы и ее дочерних элементов управления согласно относительному размеру шрифтов и разрешению экрана. Операционная система Windows поддерживает автоматическое масштабирование диалоговых окон с помощью относительной единицы измерения, называемой единицей размера диалогового окна. Единица размера диалогового окна основана на системном шрифте, а ее связь с пикселями можно определить с помощью функции GetDialogBaseUnits пакета Win32 SDK. При изменении темы, используемой Windows, все диалоговые окна автоматически настраиваются соответствующим образом. Кроме того, в Windows Forms поддерживается автоматическое масштабирование в соответствии со стандартным системным шрифтом или разрешением экрана. При необходимости автоматическое масштабирование можно отключить в приложении.
Произвольные сочетания режимов масштабирования на основе разрешения экрана и размера шрифта не поддерживаются. Вы без всяких проблем можете масштабировать пользовательский элемент управления в одном режиме (например, на основе разрешения экрана) и поместить его в форму с помощью другого режима (на основе размера шрифта), но использование базовой формы в одном режиме и производной формы в другом может привести к непредвиденным результатам.
Автоматическое масштабирование в действии
В Windows Forms для автоматического масштабирования формы и ее содержимого используется описанная ниже логика.
Во время разработки каждый объект ContainerControl регистрирует режим масштабирования и его текущее разрешение в свойствах AutoScaleMode и AutoScaleDimensions соответственно.
Во время выполнения фактическое разрешение хранится в свойстве CurrentAutoScaleDimensions. Свойство AutoScaleFactor динамически вычисляет отношение между разрешением во время выполнения и разрешением во время разработки.
Если при загрузке формы значения CurrentAutoScaleDimensions и AutoScaleDimensions различны, то для масштабирования элемента управления и его дочерних элементов вызывается метод PerformAutoScale. Этот метод приостанавливает размещение и вызывает метод Scale для выполнения фактического масштабирования. Впоследствии значение AutoScaleDimensions обновляется во избежание прогрессивного масштабирования.
Метод PerformAutoScale также вызывается автоматически в перечисленных ниже ситуациях.
В ответ на событие OnFontChanged, если используется режим масштабирования Font.
Если при возобновлении размещения элементов управления внутри контейнера обнаруживается изменение свойства AutoScaleDimensions или AutoScaleMode.
При масштабировании родительского объекта ContainerControl, как указанно выше. Каждый контейнерный элемент управления отвечает за масштабирование своих дочерних элементов с помощью своих собственных коэффициентов масштабирования, а не коэффициентов его родительского контейнера.
Поведение дочерних элементов управления при масштабировании может изменяться несколькими способами.
Можно переопределить свойство ScaleChildren, чтобы указать, следует ли масштабировать дочерние элементы управления.
Можно переопределить метод GetScaledBounds для корректировки границ, до которых масштабируется элемент управления, но не логики масштабирования.
Можно переопределить метод ScaleControl для изменения логики масштабирования текущего элемента управления.