2014-04-15 31 views
10

W nawiązaniu do this MSDN page (lub powiązanej strony w tej sprawie), stwierdza, że:Dlaczego zdarzenie LostFocus jest wywoływane w różnym czasie?

Po zmianie ostrości za pomocą klawiatury, koncentrują się wystąpić zdarzenia w następującej kolejności:

  1. Wprowadź
  2. GotFocus
  3. Zostaw
  4. Members
  5. Zatwierdzone
  6. LostFocus

Jednak podczas korzystania z myszki, aby podnieść zdarzenia, zmiany kolejności!

Po zmianie ostrości za pomocą myszy lub poprzez wywołanie metody Focus, Focus zdarzenia w następującej kolejności:

  1. Wprowadź
  2. GotFocus
  3. LostFocus
  4. Pozostaw
  5. Sprawdzanie poprawności
  6. Sprawdzono:

Czy to nie byłby łańcuch wydarzeń zupełnie inny? Moja interpretacja polega na tym, że łańcuch klawiatury zapewnia, że ​​wszystko działa, a następnie podnosi wydarzenie LostFocus. Jednak zdarzenia myszy wydają się podnosić je przed zatwierdzeniem z jakiegoś powodu. Dlaczego?

+0

Czy to jest ostrożność! w artykule MSDN powiązałeś słowa wystarczająco silne? Nigdy nie używaj LostFocus, tylko Opuść. Teraz to już nie ma znaczenia. –

+0

Nie ustawiam jednak ostrości. Jestem tylko ciekawy, dlaczego zamówienie zmienia się w zależności od metody wprowadzania danych. –

+4

Nawigacja po klawiaturze musi być w tej kolejności, aby zastosować sprawdzanie poprawności. Są one przeznaczone do reagowania na nie w celu sprawdzenia poprawności wprowadzonych łańcuchów.Znaczenie: Jeśli przejdziesz przez Twoje "pola tekstowe" Otrzymasz kolejną kolejność zdarzeń, a następnie nawigację za pomocą myszy, co pozwoli Ci reagować BEZPOŚREDNIO po wydaniu danych wejściowych. Czy to ci pomogło? – icbytes

Odpowiedz

0

Jak wspomniano powyżej:

W artykule MSDN jesteś połączony sformułowane wystarczająco silna? Nigdy nie używaj LostFocus, tylko Opuść.

Nawigacja po klawiaturze musi być w tej kolejności, aby zastosować zatwierdzenia. Są one przeznaczone do reagowania na nie w celu sprawdzenia poprawności dowolnych łańcuchów wejściowych.

1

Najlepszym przykładem, jaki mogę wymyślić, jest aspekt e. Advance w walidacji. Używanie klawiatury do nawigacji jest zazwyczaj kontrolą kontrolującą rodzaj nawigacji (w tym sterowanie dziećmi i rodzicami). Używanie myszy do nawigacji po formularzach nie zawsze powoduje wybranie kontrolki. Na przykład zamknięcie formularza lub po prostu kliknięcie poza kontrolą (tj. Ponowne ustawienie formularza). Nie zawsze pożądane jest sprawdzanie poprawności, gdy kliknięcie myszy występuje poza formantem. Nadzieja, która pomaga.