Bendrinti naudojant


SetFocus funkcija

Taikoma: drobės programoms Modeliu pagrįstoms programoms

Perkelia įvesties vietą į tam tikrą valdiklį.

Aprašą

SetFocus funkcija leidžia kontroliuoti įvesties židinį. Tada vartotojo klavišų paspaudimus gauna tas valdiklis, leidžiantis jam įvesti Text Input valdiklį arba naudoti klavišą Enter, kad būtų pažymėtas mygtukas. Vartotojas taip pat gali naudoti Tabklavišą, lietimo, pelės arba kitą gestą, kad galėtų perkelti įvesties vietą. Skirtuko klavišo pagrindinį veikimą nulemia TabIndex ypatybė.

Naudokite SetFocusfunkciją, kad nustatytumėte vietą, kai (kiekvienas turi toliau pateiktą pavyzdį):

  • naujai atskleistas arba įjungtas įvesties valdiklis, kad vartotojui būtų suteikta informacija apie tolesnius veiksmus ir būtų greičiau įvesti duomenys.
  • forma yra patvirtinta, kad išryškintų ir rodytų pažeidžiantį įvesties valdiklį, skirtą greitai skyrai.
  • rodomas ekranas išryškinti pirmos įvesties valdiklį su OnVisibleScreen ypatybe.

Valdiklis su fokusavimu gali vizualiai skirtis, atsižvelgiant į FocusedBorderColorir FocusedBorderThickness savybes.

Apribojimai

SetFocus gali būti naudojamas tik su:

Įvesties vietos negalite nustatyti į valdiklius, esančius galerijos valdiklyje, formos valdiklyje arba komponente. "SetFocus " galima naudoti su valdikliu slenkamame ekrane.

Negalite sufokusuoti valdiklių, kurie yra konteineriovaldiklyje.

Galite nustatyti fokusavimą tik tame pačiame ekrane esantiems valdikliams, kadangi iškviečiama formulė, kurioje yra SetFocus.

Bandant nustatyti fokusavimą valdikliui, kurio DisplayModeypatybė nustatyta Disablednebus jokio poveikio. Fokusavimas išliks buvusioje vietoje.

"Apple" iOS minkštoji klaviatūra bus rodoma automatiškai tik tuo atveju, jei "SetFocus " buvo inicijuotas tiesioginiu vartotojo veiksmu. Pavyzdžiui, iškviečiant mygtuko OnSelectypatybę, bus rodoma švelnioji klaviatūra, tuo tarpu OnVisible ekrane nebus rodomas.

Galite naudoti SetFocus tik veikimo formulėse.

Sintaksė

SetFocus ( Control)

  • Control – Būtinas. Valdiklis, skirtas suteikti įvesties vietą.

Pavyzdžiai

Fokusuojamas naujai rodomas ir įjungtas įvesties valdiklis

Daugelis pirkinių krepšelių leidžia klientui naudoti siuntimo adresą kaip sąskaitų siuntimo adresą, taip sumažinant poreikį įvesti tą pačią informaciją du kartus. Jei pageidaujamas kitas atsiskaitymo adresas, įjungiami atsiskaitymo adreso teksto įvesties laukeliai, todėl naudinga nukreipti klientą į šiuos naujai įjungtus valdiklius, kad būtų galima greičiau įvesti duomenis.

Animacijos pasirinkimas norint naudoti pasirinktinį sąskaitų siuntimo adresą, akcentuojant sąskaitos siuntimo pavadinimo įvesties valdiklį kaip galutinį rezultatą, išjungiant automatinį sinchronizavimą su siuntimo adresu.

Čia yra daug veikiančių formulių, tačiau galinčios perkelti fokusavimą ant OnUncheck ypatybės Check box valdiklio:

SetFocus( BillingName )

Tab klavišą taip pat galima naudoti norint greitai perkelti fokusavimą iš vieno lauko į kitą. Norint geriau iliustruoti, klavišas Tabnebuvo naudojamas animacijoje.

Norint sukurti šį pavyzdį:

  1. Kurti naują programą.
  2. Įtraukite Labelvaldikliussu tekstu „Siuntimo adresas”, „Pavadinimas:”, „Adresas:”, „Sąskaitų siuntimo adresas”, „Pavadinimas:” ir „Adresas”, bei perkelkite juos taip, kaip pavaizduota animacijoje.
  3. Įtraukite Text Input valdiklį ir pervardinkite į ShippingName.
  4. Įtraukite Text Input valdiklį ir pervardinkite į ShippingAddress.
  5. Įtraukite Check box valdiklį ir pervardykite jį į SyncAddresses.
  6. Nustatykite šio valdiklio Text ypatybę pagal formulę "Use Shipping address as Billing address".
  7. Įtraukite Text Input valdiklį ir pervardinkite į BillingName.
  8. Nustatykite Default ypatybę šiame valdiklyje pagal formulę "ShippingName”.
  9. Nustatykite DisplayMode ypatybę šiame valdiklyje formulei If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Taip automatiškai įjungsite arba išjungsite šį valdiklį, pagrįstą žymės laukelio valdiklio būsena.
  10. Įtraukite Text Input valdiklį ir pervardinkite į BillingAddress.
  11. Nustatykite Default ypatybę šiame valdiklyje pagal formulę "ShippingAddress"
  12. Nustatykite DisplayMode ypatybę šiame valdiklyje formulei If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Taip automatiškai įjungsite arba išjungsite šį valdiklį, pagrįstą žymės laukelio valdiklio būsena.
  13. Nustatykite žymės laukelio Default ypatybę pagal formulę true. Tai nustatys sąskaitų siuntimo adresą naudoti tą pačią numatytąją vertę kaip ir siuntimo adreso.
  14. Nustatykite žymės laukelio OnCheck ypatybę pagal formulę Reset( BillingName ); Reset( BillingAddress ) Jei vartotojas pasirenka sinchronizuoti siuntimo ir sąskaitų siuntimo adresus, tokiu būdu bus išvalyta bet kuri vartotojo įvestis sąskaitų siuntimo adreso laukuose, tokiu būdu Default ypatybės ištrauks kiekvienam vertes iš atitinkamų sąskaitų siuntimo adreso laukų.
  15. Nustatykite žymės laukelio OnUncheck ypatybę pagal formulę SetFocus( BillingName ). Jei vartotojas pasirenka nurodyti kitą sąskaitų siuntimo adresą, tai perkels fokusavimą į pirmą valdiklį sąskaitų siuntimo adrese. Valdikliai jau bus įjungti dėl jų DisplayMode ypatybių.

Dėmesys tikrinimo problemoms

Pastaba.

Nors šis pavyzdys atrodo kaip Edit formvaldiklis, deja, valdiklis dar nepalaiko SetFocus ypatybės. Vietoj to šis pavyzdys naudoja slenkamą ekraną, skirtą įvesties valdikliams saugoti.

Kai tvirtinate formą, gali būti naudinga ne tik rodyti pranešimą, jei yra problema, bet ir nukreipti vartotoją į netinkamą lauką. Tai gali būti ypač naudinga, jei svarstomas laukas yra išslinktas iš ekrano ir nematomas.

Animacija, rodanti duomenų įvedimo formos patvirtinimą ir ne tik pranešimą, bet ir įvesties vietos nustatymą netinkamam įvesties valdikliui, net jei jis yra išslinktas iš ekrano.

Šioje animacijoje tikrinimo mygtukas yra nuolat spaudžiamas, kol visi laukai užpildomi tinkamai. Atminkite, kad pelės žymiklis nejuda žemyn iš ekrano viršaus. Vietoj to SetFocus funkcija perkėlė įvesties vietą į valdiklį, kurį reikia sutvarkyti atsižvelgiant į šią formulę:

If( IsBlank( Name ),
        Notify( "Name requires a value", Error ); SetFocus( Name ),
    IsBlank( Street1 ),
        Notify( "Street Address 1 requires a value", Error ); SetFocus( Street1 ),
    IsBlank( Street2 ),
        Notify( "Street Address 2 requires a value", Error ); SetFocus( Street2 ),
    IsBlank( City ),
        Notify( "City requires a value", Error ); SetFocus( City ),
    IsBlank( County ),
        Notify( "County requires a value", Error ); SetFocus( County ),
    IsBlank( StateProvince ),
        Notify( "State or Province requires a value", Error ); SetFocus( StateProvince ),
    IsBlank( PostalCode ),
        Notify( "Postal Code requires a value", Error ); SetFocus( PostalCode ),
    IsBlank( Phone ),
        Notify( "Contact Phone requires a value", Error ); SetFocus( Phone ),
    Notify( "Form is Complete", Success )
)

Norint sukurti šį pavyzdį:

  1. Sukurkite naują tuščią telefono programėlę
  2. Insert meniu pasirinkiteNew screen ir tada pasirinkite Scrollable.
  3. Ekrano centrinėje sekcijoje įtraukite Text Input valdiklius ir pavadinkite juos Name, Street1, Street2, City, County StateProvince PostalCodeir Phone. Įtraukite Label valdiklius virš kiekvieno iš jų, kad atskirtumėte laukus. Jei nepakanka vietos sutalpinti visus valdiklius, gali prireikti keisti sekcijos dydį.
  4. Įterpkite varnelę Icon valdiklisekrano viršuje, virš slinkties sekcijos.
  5. Nustatykite piktogramos valdiklio OnSelect ypatybę pagal formulę If( IsBlank( ... „jei( Tuščia( ...”, kaip nurodyta aukščiau.

Fokusavimas rodant ekraną

Pastaba.

Nors šis pavyzdys atrodo kaip Edit formvaldiklis, deja, valdiklis dar nepalaiko SetFocus ypatybės. Vietoj to šis pavyzdys naudoja slenkamą ekraną, skirtą įvesties valdikliams saugoti.

Panašiai kaip rodant įvesties valdiklį, kai rodomas duomenų įvesties ekranas, naudinga fokusuoti pirmą įvesties valdiklį, kad būtų greičiau įvesti duomenys.

Animacija, vaizduojanti „NustatytiFokusavimą” funkcijos naudojimo ir jos nenaudojimo duomenų įvesties ekrano rodymo metu palyginimus šalia vienas kito.

Šioje animacijoje kairėje esantis duomenų įvesties ekranas nenaudoja SetFocus. Ekrane pasirodžius fokusavimo neturinčiam įvesties valdikliui, reikalaujančiam, kad vartotojas bakstelėtų, paliestų, pele pasirinktų ar kitomis priemonėmis sufokusuotų Namelauką prieš į jį įvedant vertę.

Dešinėje pusėje turime tą pačią programą su OnVisibleduomenų įvesties ekrano ypatybe, kad nustatytume pagal šią formulę:

SetFocus( Name )

Tai automatiškai nustato fokusavimą ant Name lauko. Vartotojas gali pradėti rinkti tekstą ir judėti tarp laukų iš karto, o ne imtis išankstinių veiksmų.

Norint sukurti šį pavyzdį:

  1. Sukurkite aukščiau „Sutelkti dėmesį į tikrinimo problemas" programą.
  2. Šiame ekrane nustatykite OnVisible ypatybę pagal formulę SetFocus( Name ).
  3. Įtraukite antrą ekraną.
  4. Įtraukite Button valdiklį.
  5. Nustatykite šio valdiklio OnSelect ypatybę pagal formulę Navigate( Screen1 ).
  6. Peržiūrėkite programą iš šio ekrano. Paspauskite mygtuką. OnVisibleformulė ir Name laukas bus automatiškai sufokusuoti.