Назад Вперед Содержание

Пример

Создадим приложение для вычисления площади квадрата. Сторону квадрата (действительное число) будем вводить в поле ввода. При нажатии на кнопку «Вычислить», в элемент Label должна выводиться площадь квадрата с введенной стороной. Украсим форму рисунком и изменим цвет фона и цвет текста.

Создание формы

В конструкторе форм создадим 5 надписей (элементов Label), одно поле ввода (элемент TextBox) и одну кнопку (элемент Button).

Выделим форму и зададим для всех элементов цвет текста и цвет фона.

Изменим свойства элемента Label1. Для этого выделим его и откроем для него панель свойств. Свойство Name оставим умалчиваемое - label1. Свойству Text присвоим значение «Площадь квадрата». Для свойства Font откроем обзор и выберем Arial, размер 12, полужирный.

В результате получился заголовок

Аналогично, изменим свойства всех остальных элементов так:

Добавим на форму картинку triskell.png. Для этого перетащим на форму элемент PictureBox и изменим его свойство Image.

Добавление обработчиков событий

В процессе построения приложения, у нас автоматически создается два класса: Класс Form1 и класс Program.

В классе Program, в методе Main автоматически выводится код, который создает экземпляр класса Form1. Это наша конкретная форма. Здесь мы ничего корректировать не будем.

Немного поясним команды метода Main.

Application – класс, который предоставляет методы и свойства для управления приложением.

// Включает визуальные стили для приложения.

Application.EnableVisualStyles();

// Задает значения по умолчанию во всем приложении

Application.SetCompatibleTextRenderingDefault(false)

// Создает экземпляр класса Form1 и открывает его Application.Run(new Form1());

Эти команды создаются автоматически, здесь мы ничего не делаем.

В классе Form1 уже находится метод Form1, который выполняет инициализацию всех элементов нашей формы.

Для взаимодействия с пользователем в Windows Forms используется механизм событий. События в Windows Forms представляют стандартные события на C#, только применяемые к визуальным компонентам и подчиняются тем же правилам, что события в C#. Но создание обработчиков событий в Windows Forms все же имеет некоторые особенности.

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

Чтобы добавить обработчик, можно просто два раза нажать по пустому полю рядом с названием события, и после этого Visual Studio автоматически сгенерирует обработчик события. Например, нажмем для создания обработчика для события Load:

И в этом поле отобразится название метода обработчика события Load. По умолчанию он называется Form1_Load.

Если мы перейдем в файл кода формы Form1.cs, то увидим автосгенерированный метод Form1_Load:

И при каждой загрузке формы будет срабатывать код в обработчике Form1_Load.

Как правило, большинство обработчиков различных визуальных компонентов имеют два параметра: sender - объект, инициировавший событие, и аргумент, хранящий информацию о событии (в данном случае EventArgs e). Но это только обработчик.

Добавление же обработчика, созданного таким образом, производится в файле Form1.Designer.cs:

Для добавления обработчика используется стандартный синтаксис C#: this.Load += new System.EventHandler(this.Form1_Load)

Поэтому если мы захотим удалить созданный подобным образом обработчик, то нам надо не только удалить метод из кода формы в Form1.cs, но и удалить добавление обработчика в этом файле.

Вернемся к нашему проекту. После метода Form1 мы должны добавить обработчик события Click для кнопки button1

Обработчик события Click кнопки button1 должен считывать сторону из поля textBox1, вычислять площадь квадрата и записывать результат в элемент label5.

Перейдем на вкладку Конструктор, выделим кнопку button1 и выберем вкладку Свойства. Затем нажмем и выведем панель событий для кнопки

Выберем нужное событие двойным кликом

В классе Form1 появится заготовка для метода, который должен выполняться, если возникнет событие Click.

В месте, где должен быть код обработчика события Click для объекта button1 напишем операторы, которые считывают информацию из текстового поля textBox1, вычисляют площадь квадрата и выводят ее в элемент label5.

Объяснение кода обработчика события Click

Сторона из текстового поля textBox1 - это значение свойства Text этого поля. Это значение имеет формат string, поэтому его преобразовывают к типу Double с помощью метода Convert.ToDouble. Полученное значение присваивается действительной переменной a.

Используя введенное значение a, вычислим площадь квадрата. Для этого изменим свойство Text элемента label5. Поместим туда вычисленную площадь квадрата, предварительно преобразовав в тип String.

Проверим работу программы. Введем сторону =4,8.

Варианты задач

  1. Создать форму, на которой находятся:
  2. Свойства формы и текста см. в Таблице.
  3. При нажатии на кнопку должно выполняться следующее:
  4. Созданное приложение сохранить для следующей практической работы.
ВариантДействия с даннымиСвойства текста в окне
1Сложить числаЦвет текста, курсив
2Перемножить числаЦвет текста, цвет фона
3От первого числа отнять второеЦвет текста, выравнивание
4Сравнить числа (больше, меньше, равны) Цвет текста, шрифт
5Разделить первое на второе. Проверить второе число на равенство 0.Цвет текста, размер шрифта
6Проверить четность (оба четные, оба нечетные, одно четное)Цвет фона, подчеркивание.
7Проверить знак (оба положительные, оба отрицательные, одно положительное)Цвет текста, фон картинка
8Проверить их четность (оба четные, оба нечетные, одно четное)Цвет фона, размер шрифта.
9Найти количество кратных 5Цвет фона, размер шрифта
10Проверить однозначность (оба однозначные, оба не однозначные, одно однозначное)Фон картинка, жирный.
11Проверить двузначность (оба двузначные, оба не двузначные, одно двузначное)Цвет фона, шрифт
12Проверить значность (оба трехзначные, оба не трехзначные, одно трехзначное)Фон картинка, размер шрифта
13Проверить простоту (оба простые, оба непростые, одно простое)Фон картинка, цвет текста
14Проверить так: оба палиндромы, оба не палиндромы, одно палиндромЦвет текста, жирность.
15Проверить так: оба числа Фибоначчи, оба не Фибоначчи, одно ФибоначчиФон картинка, шрифт, размер шрифта.

Назад Вперед Содержание