Создайте новый проект Ex1 в новом решении Lab6.
1‑й этап. Создадим визуальный интерфейс приложения (рис. 6.2).
Измените значения свойств формы следующим образом:
Свойство | Значение |
Name | MainForm |
Text | Конвертер |
Поместите на форму компонент Label, измените значения свойств следующим образом:
Свойство | Значение |
Name | CentiMLabel |
Text | Введите длину в сантиметрах |
Font. Size | 10 |
Поместите на форму компонент TextBox, измените значения свойств следующим образом:
Свойство | Значение |
Name | CentiMTextBox |
Text | |
Font. Size | |
TextAlign | Right |
Поместите на форму компонент Button, измените значения свойств следующим образом:
Свойство | Значение |
Name | ExecuteButton |
Font. Size | |
Text | Перевести |
Поместите на форму компонент Label, измените значения свойств следующим образом:
Свойство | Значение |
Name | InchLabel |
Font. Size | |
Text | Длина в дюймах |
Поместите на форму компонент TextBox, измените значения свойств следующим образом:
Свойство | Значение |
Name | InchTextBox |
Font. Size | |
Enabled | False |
Text | |
TextAlign | Right |
Измените размеры формы в соответствии с расположенными компонентами (рис. 6.2).
|
|
2‑й этап. Создание программного кода.
Создайте обработчик события Click кнопки ExecuteButton. Для этого достаточно выполнить двойной щелчок мышью по кнопке. При нажатии на кнопку «Перевести» требуется информацию, введенную пользователем в компонент CentiMTextBox, преобразовать в соответствии с математической формулой: дюймы = сантиметры / 2,54, – и отобразить результат в компоненте InchTextBox. Итак, в обработчике события Click кнопки ExecuteButton введем следующие операторы:
private void ExecuteButton_Click(object sender, EventArgs e)
{
try
{
InchTextBox.Text = (double.Parse(CentiMTextBox.Text)
/2.54).ToString();
}
catch
{
MessageBox.Show("Некорректный ввод данных", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
CentiMTextBox.Text = "0";
InchTextBox.Text = "0";
}
}
Отметим, что информация, введенная пользователем в компонент CentiMTextBox, хранится в свойстве Text в строковом формате, а значение длины в сантиметрах – это вещественное число. Для преобразования строковой величины в вещественное число используется метод Parse () класса double, для обратного преобразования используется метод ToString (). Кроме того, при попытке перевести строку в число может возникнуть ошибка. Оператор try позволяет обработать эту исключительную ситуацию программным путем и вывести сообщение об ошибке.
Синтаксис оператора:
try
{
… //контролируемый блок
}
catch //один или несколько блоков
{
… //блок обработки исключений
}
finally
{
… //блок завершения
}
Программные инструкции, которые нужно проконтролировать на предмет исключений, помещаются в блок try. Если исключение возникает в этом блоке, оно дает знать о себе выбросом определенного рода информации. Выброшенная информация может быть перехвачена и обработана соответствующим образом с помощью блока catch. Весь код, который должен быть обязательно выполнен при выходе из блока try, в любом случае, произошла ошибка или нет, помещается в блок finally.
|
|
Изучению способов использования обработчиков исключительных ситуаций посвящена лекция 4.
Сохраните изменения, внесенные в проект. Запустите приложение.
Создайте обработчик события KeyDown компонента CentiMTextBox. Укажите в нем следующее:
if (e.KeyCode == Keys.Enter) ExecuteButton_Click(sender,e);
Теперь подсчет результата будет выполняться не только при нажатии на кнопку ExecuteButton, но и при нажатии на клавишу Enter. Убедитесь в этом, запустив приложение.
Упражнение 6.2. Дополним приложение «Конвертер» возможностью перевода сантиметров не только в дюймы, но еще и в футы и ярды.