В задачу про обчислення площі квадрата внесемо зміни.
Зробимо так, щоб в поле введення можна було ввести тільки дійсне число. Тобто, можна ввести будь-які цифри і тільки одну кому. Якщо натискати клавіші з літерами або іншими символами, то в поле цей символ не виводиться.
Якщо поле не заповнено, то при натисканні на кнопку «Обчислити», в окреме вікно повинно виводитися повідомлення «Введіть сторону».
Змінимо код обробника Click. Будемо використовувати інструкцію try-catch.
В блок try перенесемо всі оператори, які зчитують інформацію з текстового поля textBox1, обчислюють площу квадрата і виводять її в елемент label5 (весь старий код обробника).
Оператори блоку catch будуть виконуватися, якщо поле не заповнено. Тому там буде висновок повідомлення "Введіть сторону». Це повідомлення виведемо в окреме віконце методом MessageBox.
Оброблювач KeyPress додається після обробника Click.
Код обробника події KeyPress:
В коді:
Символ с- знак ASCII, натиснутоюклавіші.
Рядок tx - текст, який вже введений в текстове поле.
Число n - номер позиції, в якій в уже виведеному тексті знаходиться кома. Якщо ком немає, то число дорівнює -1.
Наступна рядок коду означає: якщо натиснута не цифри або якщо натиснута кома, а кома вже є, то системна обробка події KeyPress скасовується за допомогою властивості Handled (символ в полі не виводиться). Тобто e.Handled = true;
Перевіримо роботу програми. Введемо сторону = 3,6.
уще раз перевіримо роботу програми. Залишимо поле введення порожнім і натиснемо кнопку.
З'явиться повідомлення:
При натисканні на будь-які клавіші крім цифр і однієї коми, в поле «Введіть сторону» нічого не буде виводиться.
А, Б, С - дійсні числа, к1, к2, к3 - цілі числа. Обчислити значення за формулою - А * Б * С і з урахуванням коефіцієнтів К1, К2, к3 за формулою - А * к1 + Б * к2 + С * к3
Виконати контроль введення даних і контроль заповнення полів.
При побудові форми дамо полях імена: A, B, C, k1, k2, k3 і AB (для результату). Імена кнопок і міток залишимо стандартними.
Для того щоб кілька об'єктів при певному подію оброблялися одним обробником, потрібно для кожного об'єкта для одного і того ж події (у нас KeyPress) вказати ім'я одного і того ж обробника.
Коли для одного поля обробник події вже встановлено, для інших полів його можна вибрати зі списку.