005 — Пример программирования события в C#

Пример программирования события клика на кнопке в C#. Разработка программы определения площади поверхности шара

На примере решения задачи определения площади поверхности шара, подробно описывается как программировать событие в среде Microsoft Visual Studio — C#.


Содержание


Условие задачи

Составить программу, которая по введенному радиусу R находит площадь поверхности шара. Программу реализовать как Windows Forms Application.

Площадь поверхности шара вычисляется по формуле:

02_02_00_005_00_

где R – радиус шара, πконстанта равная 3.1415.

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

  • Label – метка для вывода сообщений;
  • Button – кнопка для выполнения расчета;
  • TextBox – поле ввода, предназначенное для ввода значения R.

 


Выполнение

1. Запустить MS Visual Studio. Создать проект по шаблону Windows Forms Application

Подробный пример создания нового приложения типа Windows Forms Application описан здесь. Сохранить проект под любым именем.

 

2. Размещение элементов управления на форме.

Из вкладки «Common Controls» выносим на форму четыре элемента управления (рис. 1):

  • два элемента управления типа Label (метка);
  • элемент управления типа Button (кнопка);
  • элемент управления типа TextBox (строка ввода).

C# Windows Forms эементы управления Label Button TextBox

Рис. 1. Элементы управления Label, Button, TextBox

Автоматически создаются четыре объекта с именами label1, label2, button1 и textBox1. По этим именам можно будет иметь доступ к свойствам этих объектов.

Форма приложения будет иметь вид, как показано на рис. 2.

C# Windows Forms форма приложение рисунок

Рис. 2. Форма приложения после размещения label1, label2, button1 и textBox1

 

3. Настройка элементов управления типа Label.

Выделяем элемент управления (объект) label1. В палитре Toolbox изменяем свойство Text, набираем «R = «.

Точно так же изменяется свойство Text для элемента управления label2 (рис. 3). Вводим текст «Площадь поверхности шара = «.

C# Windows Forms свойство Text

Рис. 3. Изменение свойства Text в label1

 

4. Элемент управления Button.

Аналогично к label1 выделяем элемент управления (объект) button1. В свойстве Text вводим строку «Вычислить«.



 

5. Корректировка вида формы.

Изменяем название формы. Для этого выделяем форму. В свойстве Text формы вводим текст «Площадь поверхности шара«.

После корректировки форма будет иметь вид, как показано на рисунке 4.

C# Windows Forms Application форма

Рис. 4. Вид формы после корректировки

 

6. Программирование события клика на кнопке «Вычислить«.
6.1. Вызов программного кода.

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

После нажатия на кнопке «Вычислить» формируется фрагмент кода, который будет обрабатываться нашим приложением. Во время обработки сначала определяется значение введенного радиуса R, затем делается расчет по формуле и вывод результата.

Чтобы вызвать фрагмент кода обработки события на кнопке button1 нужно выполнить такие действия:

  • выделить кнопку button1 (рис. 5 — 1);
  • перейти к вкладке Events (события) в окне свойств (рис. 5 — 2);
  • сделать двойной щелчок «мышкой» напротив события «Click» (рис. 5 — 3).

C# Windows Forms Application событие Click

Рис. 5. Последовательность вызова фрагмента кода обработки события Click

В итоге, откроется вкладка программного кода, который размещен в файле «Form1.cs» (рис. 6).

C# Windows Forms Application обработка событие клик кнопка

Рис. 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.

 


Связанные темы