Czym jest Fokus w Visual Basic?


(Quentin) #1

Witam !

Mam takie pytanie odnośnie VBA. Jeżeli jest załóżmy taki oto błąd z polem tekstowym tbWartość :

If Err.Number <> 0 Then

    MsgBox "Niewłaściwa wartość!"

    tbWartość.SetFocus

    Exit Sub

  End If

  On Error GoTo 0

I wtedy pole tekstowe otrzymuje fokus. Myślałem na początku, że jest to wyczyszczenie pola, ale to nie to. Czym jest tutaj ten fokus - pytam z czystej ciekawości :?:


(Grzegorz Kwiatek) #2

Co prawda nie programowałem w VBA, ale "fokus" powinien oznaczać, że jakaś kontrolka formularza (w twoim przypadku pole tekstowe) staje się "aktywna". W twoim przypadku, dla pola tekstowego, oznacza to ni mniej ni wiecej tylko to, że pojawi się w niej kursor, jeśli przez przypadek znajdował się gdzie indziej, i ta kontrolka będzie przejmowała informacje przychodzące z klawiatury.

Można fokus ustawić np. na przycisku (przynajmniej tak jest w bibliotece VCL borlanda), wtedy naciśnięcie enter powoduje akcję identyczną, jakbyś kliknął w ten przycisk. Ogólnie: proponuję ci pomanewrować klawiszem TAB na jakimś dowolnym formularzu i zobaczysz, jak przenosi się "fokus" z kontrolki na kontrolkę.


(Quentin) #3

A tak masz rację - gdy tego nie ma fokusa, w tbWartość , kiedy wystąpi w niej błąd, nie ma kursora. Natomiast gdy jest fokus, kursor automatycznie przenosi się do tej komórki w której wystąpił błąd :wink:

Dzięki wielkie :slight_smile: