Введение в Windows forms

 

Windows Forms позволяет разрабатывать приложения с полнофункциональным графическим интерфейсом. Для работы с WF необходимо создать проект. Основные окна проекта:

Обозреватель решений – показывает структуру проекта;

Графический дизайнер формы – позволяет создавать интерфейс;

Панель элементов – готовые компоненты для оформления интерфейса;

Окно свойств – позволяет настроить свойства элементов интерфейса.

 

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

 

Стартовой точкой входа в графическое приложение является класс Program, расположенный в файле Program.cs

Сначала программой запускается данный класс, затем с помощью выражения Application.Run(new Form1()) он запускает форму Form1. Если вдруг мы захотим изменить стартовую форму в приложении на какую-нибудь другую, то нам надо изменить в этом выражении Form1 на соответствующий класс формы.

В структуре проекта есть файл Form1.Designer.cs. Здесь объявляется частичный класс формы Form1, которая имеет два метода: Dispose(), который выполняет роль деструктора объекта, иInitializeComponent(), который устанавливает начальные значения свойств формы.

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

Но на практике мы редко будем сталкиваться с этим классом, так как они выполняет в основном дизайнерские функции - установка свойств объектов, установка переменных.

Еще один файл - Form1.resx - хранит ресурсы формы. Как правило, ресурсы используются для создания однообразных форм сразу для нескольких языковых культур.

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

ФОРМЫ

Основным объектом для построения интерфейса являются формы. Каждой графической форме соответствует некоторый код, который представляет из себя класс с таким же именем как и имя формы, являющийся потомком класса Form. Также необходимо подключение пространства имен System.Windows.Forms

using System;

using System.Windows.Forms;

 

namespace WindowsFormsApplication5

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

}

}

 

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

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

· 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: указывает, в каком состоянии форма будет находиться при запуске: в нормальном, максимизированном или минимизированном

Мы можем изменять свойства формы непосредственно в окне свойств, а можем изменять их программно. Для этого в программном коде после инициализации свойств можно прописать и собственные значения:

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;

//размер

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

//начальная позиция

this.StartPosition = FormStartPosition.CenterScreen;

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

this.BackColor = Color.Aquamarine;

this.ForeColor = Color.Red;

//изображение в качестве фона

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

}

}

}

 

Кроме свойств компонент с программированием в WF тесно связан механизм событий. Он служит для связи с пользователем программы.

 

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

 

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

 

В системе Windows к событиям можно отнести нажатие кнопкой мыши, нажатие клавиши и т.п.

 

Каждому событию соответствует некоторая функция, код которой выполняется в случае наступления события. Добавление же обработчика, созданного таким образом, производится в файле Form1.Designer.cs. Поэтому если мы захотим удалить созданный подобным образом обработчик, то нам надо не только удалить метод из кода формы в Form1.cs, но и удалить добавление обработчика в этом файле.

 

Рассмотрим основные события формы.

 

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

FormClosed – Происходит после закрытия формы.

FormClosing – Происходит до закрытия формы.

Click – Происходит при щелчке мыши

DoubleClick – Происходит при двойном щелчке мыши.

 

 

Добавление форм.

 

В проекте может быть не одна форма. Добавить форму можно следующим образом:

 

Взаимосвязь между формами организовывают следующим образом:

 

В форме-родителе в соответствующем обработчике события создают объект класса дочерней формы и применяют метод Show()

Form2 newForm = new Form2();

newForm.Show();

В данном случае дочерняя форма не знает о существовании родительской. Чтобы это исправить, надо дочерней форме как-то передать сведения о родительской форме. Для этого воспользуемся передачей ссылки на форму в конструкторе.

Итак перейдем ко второй форме и перейдем к ее коду - нажмем правой кнопкой мыши на форму и выберем View Code (Просмотр кода). Пока он пустой и содержит только конструктор. Поскольку C# поддерживает переопределение методов, то мы можем создать несколько методов и конструкторов с разными параметрами и в зависимости от ситуации вызывать один из них. Итак, изменим файл кода второй формы на следующий:

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 Form2 : Form { public Form2() { InitializeComponent(); }   public Form2(Form1 f) { InitializeComponent(); f.BackColor = Color.Yellow; } } }

Фактически мы только добавили здесь новый конструктор public Form2(Form1 f), в котором мы получаем первую форму и устанавливаем ее фон в желтый цвет. Теперь перейдем к коду первой формы, где мы вызывали вторую форму и изменим его на следующий:

private void button1_Click(object sender, EventArgs e) { Form2 newForm = new Form2(this); newForm.Show(); }

Поскольку в данном случае ключевое слово this представляет ссылку на текущий объект - объект Form1, то при создании второй формы она будет получать ее (ссылку) и через нее управлять первой формой.

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

Мы можем также создавать объекты и текущей формы:

private void button1_Click(object sender, EventArgs e) { Form1 newForm1 = new Form1(); newForm1.Show();   Form2 newForm2 = new Form2(newForm1); newForm2.Show(); }

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








Дата добавления: 2017-08-01; просмотров: 1919;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.02 сек.