Распределенное обучение с 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
Для создания «резинового» интерфейса нужно воспользоваться свойствами элементов управления из категории Макет (Layout). А конкретно свойством Anchor.
В Windows Forms свойство Anchor определяет стороны контейнера (Top, Bottom, Left, Right) к которым привязывается элемент управления. При изменении размера контейнера расстояние между указанной стороной контейнера и ближайшей к ней стороне элемента управления остаётся неизменным.
Таким образом можно добиться растягивания и перемещения элементов в форме при изменении её размера.
В нашем случае контейнером для элементов управления является всё окно.
Зададим для TextBox значение атрибута Anchor = Top, Left, Right. Теперь расстояние между соответствующими сторонами ТекстБокса и окна будет неизменным. Так мы добьёмся изменения ширины контрола при изменении ширины окна.
Для RichTextBox значение свойства Anchor сделаем равным Top, Bottom, Left, Right.
У кнопки Button установим Anchor, как Top, Right.
Теперь запустим программу и изменим размер окна: увидим, что элементы управления на форме растягиваются и меняют своё местоположение. Теперь интерфейс стал адаптированным к изменению размера окна.
Есть ещё один момент. Когда мы будем уменьшать мышью размер формы — контролы будут скрываться из поля зрения.
Чтобы решить данную проблему, необходимо указать минимальный размер формы 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 руб.), если кто вдруг побежит оформлять покупку — не делайте это на оф.сайте.