На прикладі рішення задачі визначення площі поверхні кулі, детально описується як програмувати подія в середовищі Microsoft Visual Studio - C #.
зміст
Умова задачі
Скласти програму, яка по введеному радіусу R знаходить площу поверхні кулі. Програму реалізувати як Windows Forms Application.
Площа поверхні кулі обчислюється за формулою:
де R - радіус кулі, π - константа рівна 3.1415.
У програмі використовуються наступні елементи управління:
- Label - мітка для виведення повідомлень;
- Button - кнопка для виконання розрахунку;
- TextBox - поле введення, призначений для введення значення R.
⇑
виконання
1. Запустити MS Visual Studio. Створити проект по шаблону Windows Forms Application
Докладний приклад створення нового додатка типу Windows Forms Application описаний тут . Зберегти проект під будь-яким ім'ям.
⇑
2. Розміщення елементів управління на формі.
З вкладки «Common Controls» виносимо на форму чотири елементи управління (рис. 1):
- два елементи управління типу Label (мітка);
- елемент керування типу Button (кнопка);
- елемент керування типу TextBox (рядок введення).
Мал. 1. Елементи управління Label, Button, TextBox
Автоматично створюються чотири об'єкти з іменами label1, label2, button1 і textBox1. За цим іменам можна буде мати доступ до властивостей цих об'єктів.
Форма додатка буде мати вигляд, як показано на рис. 2.
Мал. 2. Форма додатка після розміщення label1, label2, button1 і textBox1
⇑
3. Налаштування елементів управління типу Label.
Виділяємо елемент управління (об'єкт) label1. У палітрі Toolbox змінюємо властивість Text, набираємо «R =«.
Точно так же змінюється властивість Text для елемента управління label2 (рис. 3). Вводимо текст «Площа поверхні кулі =«.
Мал. 3. Зміна властивості Text в label1
⇑
4. Елемент управління Button.
Аналогічно до label1 виділяємо елемент управління (об'єкт) button1. У властивості Text вводимо рядок «Обчислити«.
⇑
5. Коригування виду форми.
Змінюємо назву форми. Для цього виділяємо форму. У властивості Text форми вводимо текст «Площа поверхні кулі«.
Після коригування форма буде мати вигляд, як показано на малюнку 4.
Мал. 4. Форма форми після коригування
⇑
6. Програмування події кліка на кнопці «Обчислити«.
6.1. Виклик програмного коду.
У програмі потрібно обробити подія, яка генерується коли користувач робить клік «мишкою» на кнопці «Обчислити«.
Після натискання на кнопці «Обчислити» формується фрагмент коду, який буде оброблятися нашим додатком. Під час обробки спочатку визначається значення введеного радіуса R, потім робиться розрахунок за формулою і висновок результату.
Щоб викликати фрагмент коду обробки події на кнопці button1 потрібно виконати такі дії:
- виділити кнопку button1 (рис. 5 - 1);
- перейти до вкладки Events (події) у вікні властивостей (рис. 5 - 2);
- зробити подвійне клацання «мишкою» навпроти події «Click» (рис. 5 - 3).
Мал. 5. Послідовність виклику фрагмента коду обробки події Click
У підсумку, відкриється вкладка програмного коду, який розміщений у файлі «Form1.cs» (рис. 6).
Мал. 6. Метод обробки події кліка на кнопці button1
Лістинг програмного коду наступний:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1 {public partial class Form1: Form {public Form1 () {InitializeComponent ();} Private void button1_Click (object sender, EventArgs e) {}}}⇑
6.2. Введення програмного коду обробки події.
У методі button1_Click вписуємо код обробки події. Лістинг методу наступний:
... private void button1_Click (object sender, EventArgs e) {const double Pi = 3.1415;double R, S;R = Double .Parse (textBox1.Text);S = 4 * Pi * R * R;label2.Text = "Площа поверхні кулі =" + S.ToString ();} ...
У коді описуються дві змінні R і S типу double. Також описується константа Pi.
Для перетворення з текстового типу string в тип double використовується метод Parse. Таким чином заповнюється значення змінної R.
R = Double .Parse (textBox1.Text.ToString ());Подібним чином можна перетворювати дані і інших типів. Наприклад, для типу int можна написати:
int d;d = Int32 .Parse ( "100");// d = 100
Результат обчислення площі поверхні кулі виводиться в label2.Text. Перетворення в тип string здійснюється за допомогою методу ToString ().
⇑
6.3. Коригування програмного коду.
У коді, описаному в пункті 6.2 нету захисту від некоректного введення значення R. Тому метод button1_Click потрібно переписати таким чином:
... private void button1_Click (object sender, EventArgs e) {try {const double Pi = 3.1415;double R, S;R = Double .Parse (textBox1.Text);S = 4 * Pi * R * R;label2.Text = "Площа поверхні кулі =" + S.ToString ();} Catch (FormatException ex) {label2.Text = "Помилка -" + ex.Message;}} ...
блок
try {...} catch (...) {...}
дозволяє здійснити програмний перехоплення критичної ситуації, яка може виникнути в результаті введення некоректного значення в поле textBox1 (наприклад «абракадабра»).
В цьому випадку у властивості ex.Message буде виведено повідомлення:
Помилка - Input string was not in a correct format.⇑
7. Запуск програми на виконання.
Після цього можна запустити нашу програму на виконання і протестувати її роботу за будь-яких значеннях R.