Чем окно свойства отличается от окна свойства формы
Перейти к содержимому

Чем окно свойства отличается от окна свойства формы

  • автор:

Чем окно свойства отличается от окна свойства формы

Окна — основные интерфейса GUI-программы Visual Studio. Чтобы создать и отобразить окна, используют экземпляры (переменные) класса Form, и методы Show() и ShowDialog(). В статье рассматривается применение этих методов.

[Обычные окна, использование Show]

Show отображает обычное окно, а ShowDialog — модальное. В программу можно добавить произвольное количество форм (окон), все они будут действовать независимо, если отображены методом Show. Добавляется новое окно так: меню Проект -> Добавить форму Windows. -> Форма Windows Forms -> OK. По умолчанию будет добавлена форма Form2. Далее в модуле Program.cs добавьте код для отображения второй формы:

. static void Main() < Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form2 frm = new Form2(); 
frm.Show();
Application.Run(new Form1()); > .

После запуска программы отобразятся сразу две формы, Form1 и Form2.

Чтобы можно было вызывать из Form1 подпрограммы и функции (методы) из Form2 (и наоборот), то необходимо инициализировать и запускать формы немного по-другому (код из Program.cs):

namespace MyApp < static class Program < static public Form1 frm1; static public Form2 frm2; /// /// Главная точка входа для приложения. /// [STAThread] static void Main() < Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); frm1 = new Form1(); frm2 = new Form2(); frm2.Show(); Application.Run(frm1); > > >

Пример вызова из класса Form2 (процедура Form2_FormClosed) метода класса Form1 (процедуру Close):

private void Form2_FormClosed(object sender, FormClosedEventArgs e) < Program.frm1.Close(); >

[Модальные окна, использование ShowDialog]

Модальное окно должно блокировать другие окна, пока не будет закрыто модальное окно. Обычно модальное окно используется для диалогов настройки, а также для фокусирования внимания пользователя на каком-то событии. В приложении в любое время может быть активно и доступно для пользователя только одно модальное окно. Часто диалог About тоже запускают как модальное окно.

Любую обычную форму можно запустить как модальное окно, если вместо Show() использовать ShowDialog(). Пример запуска диалогового (модального) окна настройки, вызываемого из меню:

private void SetupStripMenuItem_Click(object sender, EventArgs e) < //Program.form2.Show(); Program.form2.ShowDialog(); >

[Важные отличия Show от ShowDialog]

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

2. Если после вызова Show() пользователь закроет вызванное окно, то повторно вызвать Show() не получится, так как объект окна будет уничтожен, и его надо будет создавать заново. Т. е. Использование Show() всегда должно быть по такой схеме: создание экземпляра класса окна (), Show(), закрытие окна. При каждом вызове Show() экземпляр класса окна нужно создавать заново в коде приложения.

3. ShowDialog() работает по другому: после закрытия пользователем окна (в отличие от Show()) экземпляр класса окна не будет уничтожен, поэтому не нужно перед каждым новым вызовом ShowDialog создавать экземпляр класса. Этот экземпляр класса может быть создан только один раз при старте приложения (например, в функции Main модуля Program.cs).

4. Свойства модального окна нужно менять в самом классе этого окна, а не из классов других окон, так как действие кода из другого класса не будет производить никакого эффекта на модальное окно. Например, поменять свойства Top и Left модального окна, влияющие на его положение, из модулей других окон не получится.

[Ссылки]

Чем окно свойства отличается от окна свойства формы

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

свойства форм в Windows Forms

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

  • 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;

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

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