Deli putem


Funkcija SetFocus

Odnosi se na: Canvas aplikacije Aplikacije zasnovane na modelu

Premešta ulazni fokus na određenu kontrolu.

Opis

Funkcija SetFocus daje kontrolni ulazni fokus. Tada kontrola prima korisničke pritiske tastera i omogućava mu da upiše kontrolu unosa teksta ili da koristi taster Enter za izbor dugmeta. Korisnik takođe može da koristi taster Tab, dodir, miš ili drugi gest da biste sam pomerio ulazni fokus. Ponašanje tastera Tab reguliše osobina TabIndex .

Koristite funkciju SetFocus za podešavanje fokusa u sledećim slučajevima (svaki sa primerom u nastavku):

  • nova izložena ili omogućena kontrola unosa, koja će voditi korisnika ka onome šta sledi i za brži unos podataka.
  • obrazac je potvrđen, za fokusiranje i prikazivanje uvredljive kontrole unosa za brzo rešavanje.
  • prikazuje se ekran za fokusiranje prve kontrole unosa sa svojstvom OnVisible na Ekranu.

Kontrola sa fokusom se može vizuelno razlikovati na osnovu svojstva FocusedBorderColor i FocusedBorderThickness.

Ograničenja

SetFocus se može koristiti samo sa:

Ne možete podesiti fokus na kontrole koje su unutar kontrole Galerija , Uređivanje forme kontrole ili Komponente. SetFocus se može koristiti sa kontrolom na ekranu koji se može pomerati.

Ne možete postaviti fokus na kontrole koje su unutar kontrole Kontejner.

Fokus možete postaviti samo na kontrole na istom ekranu kao i formulu koja sadrži poziv SetFocus.

Pokušaj da se fokus postavi na kontrolu koja ima svoje svojstvo DisplayMode postavljeno na Onemogućeno nema efekta. Fokus će ostati tamo gde je ranije bio.

Na Apple-u iOS, meka tastatura će se automatski prikazati samo ako je SetFocus pokrenut direktnom akcijom korisnika. Na primer, pozivanje sa svojstva dugmeta OnSelect će prikazati softversku tastaturu dok pozivanje sa ekrana OnVisible neće.

Možete koristiti SetFocus samo u formulama ponašanja.

Sintaksa

SetFocus ( kontrola )

  • Kontrola – Obavezno. Kontrola za davanje ulaznog fokusa.

Primeri

Fokusirajte se na novu izloženu ili omogućenu ulaznu kontrolu

Mnoge korpe za kupovinu omogućavaju klijentu da adresu za dostavu koristi kao adresu za naplatu, ublažavajući potrebu da se dvaput unose isti podaci. Ako se želi druga adresa za naplatu, tekstualna polja za unos adrese za naplatu su omogućena, i korisno je voditi kupca na ove novo omogućene kontrole za brži unos podataka.

Animacija izbora korišćenja prilagođene adrese za naplatu, sa fokusom premeštenim na kontrolu unosa imena naplate kao rezultat vraća isključivanja automatske sinhronizacije sa adresama za isporuku.

Ovde igraju mnoge formule, ali ona koja pomera fokus je svojstvo OnUncheck kontrole Polje za potvrdu:

SetFocus( BillingName )

Taster Tab se takođe može koristiti za brzo premeštanje fokusa iz jednog polja u drugo. Za bolju ilustraciju, taster Tab nije korišćen u animaciji.

Da biste kreirali ovaj primer:

  1. Kreirajte novu aplikaciju.
  2. Dodajte kontrole Oznaka sa tekstom "Adresa za dostavu", "Ime:", "Adresa:", "Adresa za naplatu", "Ime:" i "Adresa:" i postavite ih kao što je prikazano u animaciji.
  3. Dodajte kontrolu Unos teksta i preimenujte je u ShippingName.
  4. Dodajte kontrolu Unos teksta i preimenujte je u ShippingAddress.
  5. Dodajte kontrolu Polje za potvrdu i preimenujte je u SyncAddresses.
  6. Podesite svojstvo Text ove kontrole na formulu "Use Shipping address as Billing address".
  7. Dodajte kontrolu Unos teksta i preimenujte je u BillingName.
  8. Podesite svojstvo Default za ovu kontrolu na formulu ShippingName.
  9. Podesite svojstvo DisplayMode za ovu kontrolu na formulu If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Ovo će automatski omogućiti ili onemogućiti ovu kontrolu na osnovu stanja kontrole u polju za potvrdu.
  10. Dodajte kontrolu Unos teksta i preimenujte je u BillingAddress.
  11. Podesite svojstvo Default za ovu kontrolu na formulu ShippingAddress.
  12. Podesite svojstvo DisplayMode za ovu kontrolu na formulu If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). Ovo će automatski omogućiti ili onemogućiti ovu kontrolu na osnovu stanja kontrole u polju za potvrdu.
  13. Podesite svojstvo Default polja za potvrdu na formulu true. Ovo će podrazumevano obračunati adresu za korišćenje iste vrednosti kao i adresa za dostavu.
  14. Podesite svojstvo OnCheck polja za potvrdu na formulu Reset( BillingName ); Reset( BillingAddress ). Ako korisnik odluči da sinhronizuje adrese za dostavu i naplatu, to će obrisati svaki korisnički unos u poljima Adresa za naplatu omogućavajući svojstva Default na svakom svojstvu da bi se izvukle vrednosti iz odgovarajućih polja sa adresom za dostavu.
  15. Podesite svojstvo OnUncheck polja za potvrdu na formulu SetFocus( BillingName ). Ako korisnik odabere drugu adresu za obračun, fokus će se pomeriti na prvu kontrolu u adresi za naplatu. Kontrole će već biti omogućene zbog njihovih svojstava DisplayMode.

Fokusiranje na pitanja validacije

Belešku

Iako se čini da je ovaj primer kontrola obrazac za uređivanje, ona, nažalost, još uvek ne podržava SetFocus. Umesto toga, ovaj primer koristi ekran za pomeranje za hostovanje ulaznih kontrola.

Pri potvrdi obrasca može vam biti korisno ne samo prikazivanje poruke ako postoji problem, već i odvođenje korisnika u polje koje je uvredljivo. To može biti posebno korisno ako se dotično polje pomera sa ekrana i nije vidljivo.

Animacija o potvrđivanju obrasca za unos podataka i prikazivanju ne samo poruke, već i postavljanje ulaznog fokusa na kontrolu unosa, čak i ako se pomera sa ekrana.

U ovoj animaciji dugme za potvrdu se više puta pritiska dok se sva polja pravilno ne popune. Imajte na umu da se pokazivač miša ne pomera nadole sa vrha ekrana. Umesto funkcije SetFocus, hsa je premestila ulazni fokus na kontrolu koja zahteva pažnju, ovom formulom:

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 )
)

Da biste kreirali ovaj primer:

  1. Kreirajte novu, praznu aplikaciju za telefon.
  2. U meniju Umetanje izaberite Novi ekran, a zatim izaberite Može da se povlači.
  3. U središnjem delu ekrana dodajte kontrole Unos teksta imenujte ih kao Ime, Ulica1, Ulica2, Grad, Okrug, Država/pokrajina, Poštanski broj i Telefon. Dodajte kontrole Oznaka iznad svake od njih za prepoznavanje polja. Možda ćete morati da promenite veličinu odeljka ako nije dovoljno dug da stane na sve kontrole.
  4. Dodajte znak za potvrdu kontrole Ikona u vrhu ekrana, iznad odeljka koji može da se pomera.
  5. Podesite svojstvo OnSelect kontrole ikone prema gorenavedenoj formuli If( IsBlank( ....

Fokus kod prikaza ekrana

Belešku

Iako se čini da je ovaj primer kontrola obrazac za uređivanje, ona, nažalost, još uvek ne podržava SetFocus. Umesto toga, ovaj primer koristi ekran za pomeranje za hostovanje ulaznih kontrola.

Slično kao kod izlaganja ulazne kontrole, prilikom prikazivanja ekrana za unos podataka korisno je fokusirati prvu kontrolu ulaza za brži unos podataka.

Animacija koja prikazuje uporedno korišćenje funkcije SetFocus , nasuprot nekorišćenju, prilikom prikaza ekrana za unos podataka.

U ovoj animaciji, ekran za unos podataka na levoj strani ne koristi SetFocus. Kada se prikaže da nijedna kontrola nosa nema fokus, i od korisnika se traži da fokusira polje Ime pomoću tabulatora, dodira, miša ili drugog načina, pre nego što se u njega može uneti vrednost.

Na desnoj strani imamo potpuno istu aplikaciju sa svojstvom OnVisible ekrana za unos podataka postavljenim prema ovoj formuli:

SetFocus( Name )

Ovo postavlja fokus na polje Ime automatski. Korisnik može odmah početi da unosi i da se pomera između polja pomoću tabulatora, bez prethodne radnje.

Da biste kreirali ovaj primer:

  1. Napravite gornju aplikaciju „Fokusiranje na pitanja validacije“.
  2. Na ovom ekranu, podesite svojstvo OnVisible za ovu kontrolu na formulu SetFocus( Name ).
  3. Dodavanje drugog ekrana.
  4. Dodajte kontrolu Dugme.
  5. Podesite svojstvo OnSelect ove kontrole na formulu Navigate( Screen1 ).
  6. Pregledajte aplikaciju sa ovog ekrana. Pritisnite dugme. Formula OnVisible će biti izračunata i polje Ime će automatski biti u fokusu.