(с) Культин Н.Б., 2023
Первый проект
Процесс разработки программы рассмотрим на примере — создадим приложение (приложение - программа, предназначенная для решения прикладной задачи), позволяющее посчитать доход по вкладу (рис. 2.1).
Чтобы начать работу над новым проектом, надо:
1. В меню Файл выбрать команду Создать проект.
2. В открывшемся окне Создание Проекта выбрать тип приложения - C# Приложение Windows Forms (.NET Framework) и нажать кнопку Далее.
3. В окне Настроить новый проект в поле Имя проекта ввести название проекта – profit и нажать кнопку Создать
Форма
Работа над приложением начинается с создания стартовой формы — главного окна программы. Форма создается путем добавления на ее поверхность элементов пользовательского интерфейса (полей отображения текста, полей ввода, командных кнопок, списков и других).
Сначала нужно установить размер формы и изменить ее заголовок. Изменение вида формы (а также элементов пользовательского интерфейса) осуществляется путем изменения значений свойств. Свойства объекта (формы, элемента) определяют его вид и поведение во время работы программы. Например, свойство Text формы определяет текст в заголовке, а свойство StartPosition — положение окна в момент появления его на экране во время работы программы.
Для изменения значений свойств объектов используется окно Свойства. В левой колонке окна Свойства перечислены свойства объекта, выбранного в данный момент, в правой — указаны значения свойств. Имя выбранного объекта отображается в верхней части окна Свойства.
Чтобы в заголовке окна программы отображалось ее название - Доход, надо изменить значение свойства Text формы. Чтобы это сделать, надо в окне Свойства щелкнуть левой кнопкой мыши в поле значение свойства Text (в поле появится курсор) и ввести текст Доход
Элементы
Поля ввода-редактирования текста, поля отображения текстовой информации, командные кнопки, списки, переключатели и другие элементы, обеспечивающие взаимодействие пользователя с программой, называют элементами или компонентами пользовательского интерфейса. Они находятся в окне Панель элементов на вкладке Стандартные элементы.
Программа Доход должна получить от пользователя исходные данные — сумму и срок вклада. Ввод данных (строки) с клавиатуры обеспечивает компонент TextBox. Таким образом, на форму разрабатываемого приложения нужно поместить два компонента TextBox.
Отображение текста на поверхности формы (подсказок, сообщений, результата) обеспечивает компонент Label. В окне программы Доход слева от полей редактирования отображается информация о назначении полей. Результат расчета также отображается в окне программы. Поэтому в форму надо добавить три компонента Label.
Следующее, что надо сделать на этапе создания формы, — добавить на форму командную кнопку Расчет. Назначение этой кнопки – активизировать процесс расчета дохода и отображения результата.
Окончательный вид формы приведен на рис. 2.2.
Событие
Вид формы программы Доход подсказывает, как работает программа: пользователь должен ввести в поля редактирования исходные данные и сделать щелчок на кнопке Расчет. Щелчок на командной кнопке — это пример того, что называется событием.
Событие (event) — это то, что происходит во время работы программы. У каждого события есть имя. Например, щелчок кнопкой мыши — это событие Click, двойной щелчок мышью — событие DblClick, нажатие клавиши на клавиатуре, когда курсор находиться в поле редактирования, - событие KeyPress.
Функция обработки события
Реакцией на событие должно быть какое-либо действие. В Visual C# реакция на событие реализуется как функция обработки события. Таким образом, для того чтобы программа в ответ на действия пользователя выполняла некоторую работу, программист должен написать функцию (метод) обработки соответствующего события.
Процесс создания функции обработки события рассмотрим на примере обработки события Click для кнопки Расчет.
Чтобы создать функцию обработки события, сначала надо выбрать элемент (компонент), для которого надо создать функцию обработки события. Для этого в окне конструктора формы надо сделать щелчок левой кнопкой мыши на нужном компоненте. Затем в окне Свойства щелчком на кнопке События нужно открыть вкладку События.
В левой колонке вкладки События перечислены события, которые может воспринимать выбранный компонент. Строго говоря, на вкладке События указаны не события, а свойства, значением которых являются имена функций обработки соответствующих событий.
Для того чтобы создать функцию обработки события, нужно на вкладке События сначала выбрать событие (сделать щелчок мышью на имени события), затем установить указатель мыши в поле, находящееся рядом с именем события и сделать двойной щелчок левой кнопкой мыши. В результате среда разработки создаст функцию обработки события, сформировав ее имя из имени компонента и имени события, который выглядит так:
private void button1_Click(object sender, EventArgs e)
{
}
Теперь, между открывающей и закрывающими скобками, надо поместить инструкции, реализующие алгоритм обработки события.
Функция обработки события Click на кнопке Расчет (button1) выглядит так:
private void button1_Click(object sender, EventArgs e)
{
double sum; // сумма
int period; // срок
double percent; // процентная ставка
double profit; // доход
sum = System.Convert.ToDouble(textBox1.Text);
period = System.Convert.ToInt32(textBox2.Text);
if (sum < 10000)
percent = 3.5;
else
percent = 4.5;
profit = sum * (percent / 100 / 12) * period;
label3.Text =
"Процентная ставка: " + percent.ToString("n") + "%\n" +
"Доход: " + profit.ToString("c");
}
Функция button1_Click вычисляет доход по вкладу и выводит результат расчета в поле компонента label3. Исходные данные (сумма и срок вклада) вводятся из полей редактирования textBox1 и textBox2 путем обращения к свойству Text. Значением свойства Text является строка, которая находится в поле редактирования. Свойство Text строкового типа, поэтому для преобразования строк в числа используются принадлежащие пространству имен System.Convert функции ToDouble() и ToInt32(). Следует обратить внимание, что функция ToDouble() возвращает результат только в том случае, если строка, переданная ей в качестве параметра, является изображением дробного числа, что предполагает использование запятой в качестве десятичного разделителя (при стандартной для России настройке операционной системы). Аналогично, параметр функции ToInt32() должен представлять собой строку, являющуюся изображением целого числа.
Вместо функций преобразования можно использовать хорошо знакомую разработчикам консольных приложений строку форматирования. Строку вывода можно сформировать при помощи метода Format класса String, указав в качестве его параметров строку формата и список переменных. Например, для рассматриваемой программы инструкция вывода результата может быть такой:
label3.Text = String.Format("Процентная ставка: {0:n} %\nДоход: {1:c}", percent, profit);
Литература
Если вы незнакомы с C#, то вам будет весьма полезна электронная книга Самоучитель C#, которую можно бесплатно загрузить из магазина Rustore:
https://console.rustore.ru/apps/659780543