Робота з фокусом введення
Об'єкт, що володіє фокусом, здатний отримувати призначений для користувача введення, здійсню-
ствляемий мишею або через клавіатуру. На формі може бути кілька елементом
тов управління, але в кожен момент часу фокус введення тільки у одного з них.
Елемент управління, що володіє фокусом, завжди знаходиться на активній формі
додатки.
У кожного елемента управління є метод Focus, який передає фокус введення
який викликав його елементу управління. Метод Focus повертає логічне значення,
що свідчить про успішну чи невдалої передачі фокусу. Деактівлрован-
ні або невидимі елементи управління не отримують фокус введення. визначити,
здатний даний елемент управління отримати фокус введення, дозволяє його свой-
ство CanFocus: якщо воно повертає true, елемент управління може отримати фо-
кус, а якщо false - ні.
Visual Basic .NET
Перевірити, чи може TextBoxf отримати фокус,
і, якщо так, передати йому фокус.
If TextBoxl.CanFocus = True Then
TextBoxl.Focus ()
End If
Visual C #
// Перевірити, чи може TextBoxl отримати фокус,
// і, якщо так, передати йому фокус.
if (textBoxl.CanFocus == true)
textBoxl.Focus ();
Події, пов'язані з передачею фокусу, генеруються в наступному порядку:
1. Enter
1. Got Focus
3. Leave
4. Validating
5. Validated
6. LostFocus
Події Enters Leave генеруються, коли фокус переходить до елементу управ
лення (але ще не отримана ним) і залишає його. Події GotFocus і LostFocus генері-
ються при отриманні і втрати фокусу елементом управління. В принципі, ці
події можна застосовувати для перевірки введених значень на рівні поля, одна-
до події Validating і Validated краще підходять для цієї мети.
Події Validating і Validated
Найпростіше перевірити дані, що вводяться за допомогою події Validating, генері-
руемого перед втратою фокусу елементом управління. Ця подія генерується,
тільки якщо у елемента управління, який отримає фокус таким, властивість
Causes Validation встановлено в true. Тому, якщо значення елемента управління
передбачається перевіряти за допомогою події Validating, для елемента управле-
ня, який отримає фокус таким, властивість CausesValidation слід устано-
вити в true. Крім того, використання події Validating вимагає, щоб властивість
CausesValidation у перевіряється елемента управління було встановлено в true. У
всіх елементів управління, створених під час розробки, властивість CausesValidation
встановлено в trite за замовчуванням, зазвичай виняток становить лише кноп-
ка Help.
Подія Validating дозволяє виконувати досить складну перевірку значень
елементів управління. Оброблювач цієї події здатний, наприклад, перевіряти
відповідність введеного значення деякого досить специфічного формату або
забороняти передачу фокуса іншого елемента керування, поки користувач не
введе будь-яке значення.
Подія Validating включає екземпляр CancelEventArgs - класу з єдність-
вим властивістю Cancel. Якщо введене значення не відповідає заданим параметрам,
перевіривши властивість Cancel в обробнику події Validating, можна скасувати по-
Нейш обробку цієї події і повернути фокус вихідного елементу управління.
Подія Validated генерується після успішної перевірки значення елемента
управління і дозволяє виконати деякі дії в залежності від результатів
тов перевірки.
Нижче показаний приклад обробника події Validating, який не дозволяє пе-
Реда фокус наступного елементу управління, поки користувач не введе зна
чення в поле TextBoxl.
Visual Basic .NET
Private Sub TextBox1_Validating (ByVal sender As Object, ByVal e As
System. ComponentModel. CancelEventArgs) Handles TextBoxl. Validating
1 Перевірити значення TextBoxl
If TextBoxl. Text = "" Then
Якщо поле TextBoxl порожньо, повернути йому фокус
e. Cancel - True
End If
End Sub
Visual C #
private void textBox1_Validating (object sender,
System. ComponentModel. CancelEventArgs e)
// Перевірити значення TextBoxl
if (textBoxt.Text == "")
// Якщо поле TextBoxl порожньо, зернуть йому фокус
e. Cancel = true;
> Застосування події Validating для перевірки текстового поля
1. Помістіть на форму текстове поле.
2. Створіть для нього обробник події Validating, що встановлює властивість
e. Cancel в true, щоб перервати перевірку і повернути фокус текстового поля.
3. Для всіх елементів управління, які не повинні генерувати подія
Validating, встановіть властивість Causes Validation в false.