Створимо додаток для обчислення площі квадрата. Сторону квадрата (дійсне число) будемо вводити в поле введення. При натисканні на кнопку «Обчислити», в елемент 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.
Сторона з текстового поля textBox1 - це значення властивості Text цього поля. Це значення має формат string, тому його перетворюють до типу Double за допомогою методу Convert.ToDouble. Отримане значення привласнюється дійсної змінної a.
Використовуючи введене значення a, обчислимо площу квадрата. Для цього змінимо властивість Text елемента label5. Помістимо туди обчислену площа квадрата, попередньо перетворивши в тип String.
Перевіримо роботу програми. Введемо сторону = 4,8.
Варіант | Дії з даними | Властивості тексту в вікні |
---|---|---|
1 | Скласти числа | Колір тексту, курсив |
2 | Перемножити числа | Колір тексту, колір фону |
3 | Від першого числа відняти друге | Колір тексту, вирівнювання |
4 | Порівняти числа (більше, менше, рівні) | Колір тексту, шрифт |
5 | Розділити перше на друге. Перевірити друге число на рівність 0. | Колір тексту, розмір шрифту |
6 | Перевірити парність (обидва парні, обидва непарні, одне парне) | Колір фону, підкреслення. |
7 | Перевірити знак (обидва позитивні, обидва негативні, одна позитивна) | Колір тексту, фон картинка |
8 | Перевірити їх парність (обидва парні, обидва непарні, одне парне) | Колір фону, розмір шрифту. |
9 | Знайти кількість кратних 5 | Колір фону, розмір шрифту |
10 | Перевірити однозначність (обидва однозначні, обидва не однозначні, одне однозначне) | Фон картинка, жирний. |
11 | Перевірити двозначність (обидва двозначні, обидва не двозначні, одне двозначне) | Колір фону, шрифт |
12 | Перевірити значность (обидва тризначні, обидва не тризначні, одне тризначне) | Фон картинка, розмір шрифту |
13 | Перевірити простоту (обидва прості, обидва непрості, одне просте) | Фон картинка, колір тексту |
14 | Перевірити так: обидва паліндроми, обидва не паліндроми, одне паліндром | Колір тексту, жирність. |
15 | Перевірити так: обидва числа Фібоначчі, обидва не Фібоначчі, одне Фібоначчі | Фон картинка, шрифт, розмір шрифту. |