Как зафиксировать размер окна windows forms

Распределенное обучение с TensorFlow и Python

AI_Generated 05.05.2025

В машинном обучении размер имеет значение. С ростом сложности моделей и объема данных одиночный процессор или даже мощная видеокарта уже не справляются с задачей обучения за разумное время. Когда. . .

CRUD API на C# и GraphQL

stackOverflow 05.05.2025

В бэкенд-разработке постоянно возникают новые технологии, призванные решить актуальные проблемы и упростить жизнь программистам. Одной из таких технологий стал GraphQL — язык запросов для API,. . .

Распознавание голоса и речи на C#

UnmanagedCoder 05.05.2025

Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .

Реализация своих итераторов в C++

NullReferenced 05.05.2025

Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .

Разработка собственного фреймворка для тестирования в C#

UnmanagedCoder 04.05.2025

C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .

Распределенная трассировка в Java с помощью OpenTelemetry

Javaican 04.05.2025

Микросервисная архитектура стала краеугольным камнем современной разработки, но вместе с ней пришла и головная боль, знакомая многим — отслеживание прохождения запросов через лабиринт взаимосвязанных. . .

Шаблоны обнаружения сервисов в Kubernetes

Mr. Docker 04.05.2025

Современные Kubernetes-инфраструктуры сталкиваются с серьёзными вызовами. Развертывание в нескольких регионах и облаках одновременно, необходимость обеспечения низкой задержки для глобально. . .

Создаем SPA на C# и Blazor

stackOverflow 04.05.2025

Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .

Реализация шаблонов проектирования GoF на C++

NullReferenced 04.05.2025

«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .

C# и сети: Сокеты, gRPC и SignalR

UnmanagedCoder 04.05.2025

Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .

Основные свойства форм

Последнее обновление: 31.10.2015

С помощью специального окна Properties (Свойства) справа Visual Studio предоставляет нам удобный интерфейс для управления свойствами элемента:

Большинство этих свойств оказывает влияние на визуальное отображение формы. Пробежимся по основным свойствам:

  • Name: устанавливает имя формы — точнее имя класса, который наследуется от класса Form

  • BackColor: указывает на фоновый цвет формы. Щелкнув на это свойство, мы сможем выбрать тот цвет, который нам подходит
    из списка предложенных цветов или цветовой палитры

  • BackgroundImage: указывает на фоновое изображение формы

  • BackgroundImageLayout: определяет, как изображение, заданное в свойстве BackgroundImage, будет располагаться на форме.

  • ControlBox: указывает, отображается ли меню формы. В данном случае под меню понимается меню самого верхнего уровня, где
    находятся иконка приложения, заголовок формы, а также кнопки минимизации формы и крестик. Если данное свойство имеет значение false, то мы не увидим
    ни иконку, ни крестика, с помощью которого обычно закрывается форма

  • Cursor: определяет тип курсора, который используется на форме

  • Enabled: если данное свойство имеет значение false, то она не сможет получать ввод от пользователя, то есть мы не сможем
    нажать на кнопки, ввести текст в текстовые поля и т.д.

  • Font: задает шрифт для всей формы и всех помещенных на нее элементов управления. Однако, задав у элементов формы свой шрифт,
    мы можем тем самым переопределить его

  • ForeColor: цвет шрифта на форме

  • FormBorderStyle: указывает, как будет отображаться граница формы и строка заголовка. Устанавливая данное свойство в None
    можно создавать внешний вид приложения произвольной формы

  • HelpButton: указывает, отображается ли кнопка справки формы

  • Icon: задает иконку формы

  • Location: определяет положение по отношению к верхнему левому углу экрана, если для свойства StartPosition
    установлено значение Manual

  • MaximizeBox: указывает, будет ли доступна кнопка максимизации окна в заголовке формы

  • MinimizeBox: указывает, будет ли доступна кнопка минимизации окна

  • MaximumSize: задает максимальный размер формы

  • MinimumSize: задает минимальный размер формы

  • Opacity: задает прозрачность формы

  • Size: определяет начальный размер формы

  • StartPosition: указывает на начальную позицию, с которой форма появляется на экране

  • Text: определяет заголовок формы

  • TopMost: если данное свойство имеет значение true, то форма всегда будет находиться поверх других окон

  • Visible: видима ли форма, если мы хотим скрыть форму от пользователя, то можем задать данному свойству значение
    false

  • WindowState: указывает, в каком состоянии форма будет находиться при запуске: в нормальном, максимизированном или минимизированном

Программная настройка свойств

С помощью значений свойств в окне Свойства мы можем изменить по своему усмотрению внешний вид формы, но все то же самое мы можем сделать
динамически в коде. Перейдем к коду, для этого нажмем правой кнопкой мыши на форме и выберем в появившемся контекстном меню View Code (Просмотр кода). Перед нами открывается файл кода
Form1.cs. Изменим его следующим образом:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace HelloApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Text = "Hello World!";
            this.BackColor = Color.Aquamarine;
            this.Width = 250;
            this.Height = 250;
        }
    }
}

В данном случае мы настроили несколько свойств отображения формы: заголовок, фоновый цвет, ширину и высоту.
При использовании конструктора формы надо учитывать, что весь остальной код должен идти после вызова метода InitializeComponent(), поэтому все установки свойств
здесь расположены после этого метода.

Установка размеров формы

Для установки размеров формы можно использовать такие свойства как Width/Height или Size. Width/Height принимают числовые значения, как в вышеприведенном
примере. При установке размеров через свойство Size, нам надо присвоить свойству объект типа Size:

this.Size = new Size(200,150);

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

Начальное расположение формы

Начальное расположение формы устанавливается с помощью свойства StartPosition, которое может принимать одно из следующих значений:

  • Manual: Положение формы определяется свойством Location

  • CenterScreen: Положение формы в центре экрана

  • WindowsDefaultLocation: Позиция формы на экране задается системой Windows, а размер определяется свойством Size

  • WindowsDefaultBounds: Начальная позиция и размер формы на экране задается системой Windows

  • CenterParent: Положение формы устанавливается в центре родительского окна

Все эти значения содержатся в перечислении FormStartPosition, поэтому, чтобы, например, установить форму в центре экрана, нам надо прописать
так:

this.StartPosition = FormStartPosition.CenterScreen;

Фон и цвета формы

Чтобы установить цвет как фона формы, так и шрифта, нам надо использовать цветовое значение, хранящееся в структуре Color:

this.BackColor = Color.Aquamarine;
this.ForeColor = Color.Red;

Кроме того, мы можем в качестве фона задать изображение в свойстве BackgroundImage, выбрав его в окне свойств или в коде, указав путь к изображению:

this.BackgroundImage = Image.FromFile("C:\\Users\\Eugene\\Pictures\\3332.jpg");

Чтобы должным образом настроить нужное нам отображение фоновой картинки, надо использовать свойство BackgroundImageLayout,
которое может принимать одно из следующих значений:

  • None: Изображение помещается в верхнем левом углу формы и сохраняет свои первоначальные значения

  • Tile: Изображение располагается на форме в виде мозаики

  • Center: Изображение располагается по центру формы

  • Stretch: Изображение растягивается до размеров формы без сохранения пропорций

  • Zoom: Изображение растягивается до размеров формы с сохранением пропорций

Например, расположим форму по центру экрана:

 this.StartPosition = FormStartPosition.CenterScreen;

В статье рассмотрим способ создания «резинового» интерфейса в формах Windows Forms и разберёмся, как растянуть элементы на форме при изменении размера окна программы.

Создадим в Visual Studio проект Windows Forms и разместим на форме следующие элементы управления:

  • Label
  • TextBox
  • RichTextBox
  • Button

Начальный интерфейс Windows Forms

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

Растягивание интерфейса Windows Forms

Видим, что окно формы увеличилось в размере, но элементы управления никак не реагируют на данные изменения.

Теперь покажем, как создать адаптивный к изменениям размера окна интерфейс на форме Windows Forms.

Как растянуть элементы на форме Windows Forms

Для создания «резинового» интерфейса нужно воспользоваться свойствами элементов управления из категории Макет (Layout). А конкретно свойством Anchor.

В Windows Forms свойство Anchor определяет стороны контейнера (Top, Bottom, Left, Right) к которым привязывается элемент управления. При изменении размера контейнера расстояние между указанной стороной контейнера и ближайшей к ней стороне элемента управления остаётся неизменным.

Таким образом можно добиться растягивания и перемещения элементов в форме при изменении её размера.

В нашем случае контейнером для элементов управления является всё окно.

Зададим для TextBox значение атрибута Anchor = Top, Left, Right. Теперь расстояние между соответствующими сторонами ТекстБокса и окна будет неизменным. Так мы добьёмся изменения ширины контрола при изменении ширины окна.

Установка значения Anchor для TextBox

Для RichTextBox значение свойства Anchor сделаем равным Top, Bottom, Left, Right.

Установка значения Anchor для RichTextBox

У кнопки Button установим Anchor, как Top, Right.

Установка значения Anchor для Button

Теперь запустим программу и изменим размер окна: увидим, что элементы управления на форме растягиваются и меняют своё местоположение. Теперь интерфейс стал адаптированным к изменению размера окна.

Растянуть элементы на форме Windows Forms

Есть ещё один момент. Когда мы будем уменьшать мышью размер формы — контролы будут скрываться из поля зрения.

Чтобы решить данную проблему, необходимо указать минимальный размер формы Windows Form в пикселях. Тем самым форму будет невозможно сделать меньше установленного размера.

Щёлкнем по форме и в окне свойств изменим параметр MinimunSize. Установим его равным текущему размеру формы в визуальном редакторе (Size).

Минимальный размер можно указать и меньшим — таким, при котором интерфейс хорошо выглядит и сохраняет свою функциональность. Нужные значения определяются экспериментально — для этого самостоятельно изменяйте размер формы.




  • #1

еще один 199 летний вопрос
в какойто момент виндовс понимает — что мне такой размер нужен, и как-то запоминает его
но это происходит нескоро и непонятно в какой момент
сейчас раз за разом не хочет запоминать в принципе

ну и про фиксацию расположения открывающегося окна — тоже как?

а еще лучше — как сделать чтоб при нажатии на все ссылки и разнообразные иконки окна раскрывались во весь экран? и чтоб виндовс это навсегда запомнил

как это (во весь экран) сделать для иконок на рабочем столе и в панели быстрого запуска рассказывать не надо

спасибо



  • #2

Ответ: как зафиксировать размер окна windows

вроде бы положение и размер окон запоминаются если открыть окно, выставить ему размер и закрыть. То есть, запоминается положение пустого окна



  • #3

Ответ: как зафиксировать размер окна windows

А как объяснить индезу CS2 чтоб он не высовывал мне палитру book в центр экрана? Чтоб держал ее там где она не мешает? В левом нижнем углу экрана?




  • #4

Ответ: как зафиксировать размер окна windows

опа! так таки никто и не знает!?
мало того — я многих сисадминов спрашиваю — никто толком ничего не отвечает
так же как я тыкают — а виндовз знай всё это игнорирует

denisgrim
а что такое пустое окно?



  • #5

Ответ: как зафиксировать размер окна windows

xm__ сказал(а):

denisgrim
а что такое пустое окно?

ну например, если в Ворде открыть документ и начать изменять настройки панелей и тп, то эти настройки сохранятся только для этого файла.
А вот если менять окно без документа (или с документом по дефолту), и потом просто закрыть программу, то настройки сохранятся.
Даже в Проводнике можно просто открыть его и не переходя по папкам, изменить его размер и положение, а потом закрыть. После этого Проводник будет открываться там, где вы хотели. Такой фокус действует для многих программ, но не для всех.



  • #6

Ответ: как зафиксировать размер окна windows

xm__ сказал(а):

Таки никто и не знает!? Я многих сисадминов спрашиваю — никто толком ничего не отвечает.

Наверное, они просто не понимают, о каком таком «окне Windows» вы говорите: не об окне же виртуальной машины, в которой запущена другая копия Windows.

Окна не бывают сами по себе — они принадлежат конкретным приложениям. И именно эти конкретные приложения сами определяют политику сохранения каких бы то ни было настроек, в том числе размеров окна. Причём, даже если программа написана на базе какой-нибудь навороченной системы, предоставляющей готовые функции для работы с пользовательскими настройками, — всё равно, без явного указания со стороны программиста, ничего сохраняться не будет.

Упростить и автоматизировать «приручение» окон могут специальные утилиты — оконные менеджеры. Один такой, nView, встроен в видеодрайверы nVidia. Ещё могу посоветовать Actual Window Manager с триалом на 60 дней.




  • #7

Ответ: как зафиксировать размер окна windows

ладно
по другому
вот эти два пункта зачем нужны? (аттач)
то есть я так понимаю — как раз для фиксации размера и положения
но почему они когда-то работают, а когда-то нет?

  • Untitled-1.jpg

    45.4 КБ

    · Просм.: 4 597



  • #8

Ответ: как зафиксировать размер окна windows

xm__ сказал(а):

вот эти два пункта зачем нужны?

Вроде как и в реестре можно прописать.

xm__ сказал(а):

то есть я так понимаю — как раз для фиксации размера и положения но почему они когда-то работают, а когда-то нет?

Я бы у дяди Билли спросил




  • #9

Ответ: как зафиксировать размер окна windows

он вышел
а мне ждать некогда



  • #10

Ответ: как зафиксировать размер окна windows

xm__ сказал(а):

Вот эти два пункта зачем нужны? Почему они когда-то работают, а когда-то нет?

Они всегда работают, если только не заблокированы, исходя из стиля окна (определяемого программистом). Но даже когда они работают, сохранять между сеансами значение размера и положения никто не обязан — это делается только явно по желанию программиста.

Причём, есть такая особенность, о которой нельзя забывать. Казалось бы, очевидно и логично, что, когда окно максимизировано, его размер и положение совпадает с видимым на экране (точнее, может даже чуть-чуть больше размера экрана и со смещением влево вверх). Но если программист сохранит этот размер как выбранный пользователем, то при следующем возврате окна к нормальному состоянию оно так и останется растянутым на весь экран. Вывод вроде напрашивается сам собой: программист не должен сохранять размер и положение окна, если оно максимизировано, — надо сохранить только эту информацию о состоянии. Однако тогда и не сохранится информация о действительных характеристиках окна в нормальном состоянии: например, если пользователь изменил размер или передвинул окно, а затем максимизировал и нажал Exit, то по-прежнему останутся старые данные.

Видимо, единственно правильный способ: сначала сохранить текущее состояние окна, затем вернуть окно в нормальное состояние и сохранить размер с положением. Но тогда на экране будет мельтешение, особенно если окон несколько: например, в многооконной программе все дочерние окна могут быть максимизированными. Возможно, следует перед вышеописанными процедурами прятать окно, а тогда уже делать с ним что угодно. Попробуйте донести эту мысль до всех программистов мира, и будет вам счастье.




  • #11

Ответ: как зафиксировать размер окна windows

ой
я вроде простой вопрос спросил




  • #12

Ответ: как зафиксировать размер окна windows

короче проводник поборол — сохраняет и размер и положение.
ну нажал слева вверху размер — сделал нужый и всё закрыл. вроде сохранилось.

ие пока этого не хочет.
еще надо бы и игрухи в оконном режиме как то заставить на том же месте оставаться




  • #13

Ответ: как зафиксировать размер окна windows

урррра
и осла поборол!

Настройки браузера.: Изменение размера окна браузера:

Размер вновь открытых окон браузера определяется настройками в Microsoft Internet Explorer(IE). IE сохраняет настройки размера в реестре. Для новых окон используются значения, сохраненные в реестре, а не настройки текущего или открытого в последний раз окна.

Если новые окна имеют неподходящий размер, эту проблему можно решить, выполнив следующие шаги:

1.Закройте все окна браузера, кроме одного.
2. Отрегулируйте желаемый размер оставшегося окна и закройте его.

После этого все новые окна должны открываться в развернутом состоянии.

ключевые слова выделил болдом. а я-то изменял размер +1-го окна. то есть того, что ссылкой из самого первого (нулевого) шло.

всем спасибо. закрываем тему



  • #14

Ответ: как зафиксировать размер окна windows

xm__ сказал(а):

«Закройте все окна браузера, кроме одного» — а я-то изменял размер +1-го окна, то есть того, что ссылкой из самого первого (нулевого) шло.

Ну, это вроде бы очевидный порядок вещей: если запустить несколько копий одного приложения (а IE6– каждое новое окно открывает как отдельную копию программы), то при сохранении настроек в конце концов останутся те, что имели место последними. По-другому могло бы быть, когда настройки сохраняются сразу же при внесении изменений, но в случае настроек размера и положения окна такой подход неуместен.




  • #15

Ответ: как зафиксировать размер окна windows

Samsonov сказал(а):

но в случае настроек размера и положения окна такой подход неуместен.

это вы кому?

George

I wish I was the monster you think I am




  • #16

Открою тему. Меня уже давно вымораживает, что на втором мониторе сбиваются окна мессенджеров, телефона и т.д.

Последнее состояние виндоуз, то запоминает, то нет, постоянно все равно двигаешь окна.

Сегодня, наконец-таки занялся гуглением и нашёл. Пусть платная, но работает, ура!!!
Actual Window Manager: Multiple Monitors, Virtual Desktops, Windows Control and Other Useful Tools. — вот утилита. Разбирался правда долго как зафиксировать окна, но всё получилось в итоге. Да, для русских пользователей у них значительно дешевле (не 50 баксов, а 750 руб.), если кто вдруг побежит оформлять покупку — не делайте это на оф.сайте.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Youtube skachat na kompyuter windows 10 torrent
  • Нет windows forms в visual studio
  • Аналог шрифта san francisco для windows
  • Как использовать смартфон в качестве модема для компьютера через usb windows 10
  • Cmake visual studio code windows