Walidacja na poziomie pojedynczej kontroki
Walidacja pojedynczych pól odbywa się w momencie gdy użytkownik wprowadza dane np. do TextBox-a. Jeżeli chodzi o tę kontrolkę, mamy szereg właściwości ułatwiających ten proces:
- MaxLength - maksymalna długość tekstu w kontrolce
- PasswordChar - jaki znak zostanie użyty podczas zasłaniania zawartości kontrolki - przeważnie używane w polach w które wprowadzamy hasło
- ReadOnly - czy jest tylko do odczytu
- MultiLine - czy można wprowadzać wiele linii tekstu
- KeyDow
- KeyPres
- KeyUp
Code:
Za pomocą właściwości KeyCode możemy sprawdzić, który klawisz został naciśnięty:
Code:
Zdarzenie KeyPress wywoływane jest, gdy naciśnięty klawisz reprezentuje wartość z tablicy ASCI (są to klawisze liter a - z, liczb, znaków specjalnych. Jeżeli naciśnięte klawisze/klawisz nie tworzą kodu ASCII, zdarzenie nie zostanie wywołane. Przykładem są klawisze Alt, Ctrl. Za pomocą właściwości KeyChar mamy możliwość sprawdzenia jaki klawisz został naciśnięty. Naciśnięty klawisz możemy następnie sprawdzić jawnie (przyrównując go bezpośrednio do żądanego klawisza) bądź skorzystać z metod zawartych w klasie Char:
- Char.IsDigit(e.KeyChar);
- Char.IsLetter(e.KeyChar);
- Char.IsLetterOrDigit(e.KeyChar);
- Char.IsPunctuation(e.KeyChar);
- Char.IsLower(e.KeyChar);
- Char.IsUpper(e.KeyChar);
Aktywność
Aktywowanie kontrolki, czy też ustawienie fokusa na niej powoduje, że możemy z nią prowadzić interakcje wprowadzając i zmieniając zawartość za pomocą myszki i klawiatury.
Każda kontrolka implementuje metodę Focus, która zwraca wartość logiczną czy udało się ją aktywować. Zdarzenia odpowiedzialne za aktywację kontrolki wywoływane są w następującej kolejności:
- Enter - wywoływane w momencie gdy kontrolka uzyskała fokus
- GotFocus - wywoływane w momencie gdy kontrolka po raz pierwszy uzyskała fokus
- Leave - wywoływane w momencie gdy kontrolka straciła fokus
- Validating - w momencie walidacji
- Validated - po zakończeniu walidacji
- LostFocus - wywoływane w momencie gdy kontrolka po raz pierwszy straciła fokus
Przykładowy kod:
Code:
Walidację całej formatki można zaimplementować w następujący sposób: klawisz akceptujący wartości czy też przechodzący do następnego kroku przeprowadzi walidację wszystkich pól i w razie niepowodzenia, ustawia fokus na pierwszej kontrolce z nieprawidłową wartością. Przykład:
Code:
Błędy należy w graficzny sposób przedstawić użytkownikowi. Przydatna do tego jest kontrolka ErrorProvider. Za pomocą metody SetError ustawiamy na danej kontrolce błąd. Aby usunąć powiadomienie o błędzie, należy do metody SetError podać jako błąd pusty ciąg znaków. Przykład:
Code:
Kod do pobrania: http://sdrv.ms/12GZW8A
Brak komentarzy:
Prześlij komentarz