Бөлісу құралы:


SetFocus функциясы

Қолданылады: Canvas қолданбалары Үлгіге негізделген қолданбалар

Енгізу фокусын белгілі басқару элементіне жылжытады.

Сипаттама

SetFocus функциясы басқару элементіне енгізу фокусын береді. Осыдан кейін пайдаланушының пернелерді басуларын сол басқару элементі қабылдайды, бұл оларға мәтінді енгізу басқару элементінде теруге немесе түймешікті таңдау үшін Enter пернесін пайдалануға мүмкіндік береді. Сондай-ақ пайдаланушы енгізу фокусын өзі жылжыту үшін Tab пернесін, түртуді, тінтуірді немесе басқа қимылды пайдалана алады. Tab кілт әрекеті TabIndex сипатымен реттеледі.

SetFocus функциясын мына жағдайларда (төменде әрқайсысының мысалы берілген) фокусты орнату үшін пайдаланыңыз:

  • жаңадан көрсетілген немесе қосылған енгізу басқару элементі, пайдаланушыны келесіде не болатынына және деректерді енгізу үшін бағыттайды.
  • тез шешу үшін бұзатын енгізу басқару элементін фокустау және көрсету үшін пішін тексеріледі.
  • Экран басқару элементінің OnVisible сипаты арқылы бірінші енгізу басқару элементін фокустау үшін экран көрсетіледі.

FocusedBorderColor және FocusedBorderThickness сипаттарының негізінде фокус бар басқару элементі визуалды түрде басқаша болуы мүмкін.

Шектеулер

SetFocus тек мыналармен пайдалануға болады:

Фокусты Галерея басқару, Пішінді өңдеу басқару немесе құрамындағы басқару элементтеріне орнату мүмкін емес. Компонент. SetFocus жылжымалы экрандағы басқару элементімен бірге пайдалануға болады.

Контейнер басқару элементіндегі басқару элементтеріне фокус орната алмайсыз.

Фокусты тек SetFocus функциясын шақыруды қамтитын формула экранындағы басқару элементтеріне ғана орнатуға болады.

Фокусты DisplayMode сипаты Өшірілген күйіне орнатылған басқару элементіне орнатуға әрекеттену. Фокус бұрын болған жерде қалады.

Apple iOS жүйесінде жұмсақ пернетақта тек SetFocus тікелей пайдаланушы әрекетімен басталған болса ғана автоматты түрде көрсетіледі. Мысалы, түймешіктің OnSelect сипатынан шақыру бағдарламалық пернетақтаны көрсетеді, ал экранының OnVisible сипатынан шақыру көрсетпейді.

SetFocus функциясын тек мінез-құлық формулаларында пайдалануға болады.

Синтаксис

SetFocus( Басқару )

  • Басқару – Міндетті. Енгізу фокусын беретін басқару элементі.

Мысалдар

Жаңадан көрсетілген немесе қосылған енгізу бақылару элементіне фокустау

Көптеген сауда арбалары тұтынушыға бірдей ақпаратты екі рет енгізу қажеттілігін жеңілдетіп, жөнелту мекенжайын есеп-шот екенжайы ретінде пайдалануға мүмкіндік береді. Басқа есепшот мекенжайы қажет болса, есепшот мекенжайы мәтінді енгізу жолақтары қосылады және деректерді жылдамырақ енгізу үшін тұтынушыны осы жаңадан қосылған басқару элементтеріне бағыттау пайдалы.

Теңшелетін есеп-шот мекенжайын пайдалануды таңдау анимациясы, фокус нәтиже ретіндегі есеп-шот атауын енгізу басқару элементіне жылжытылған, бұл жөнелту мекенжайымен автоматты синхрондауды өшіреді.

Мұнда көптеген формулалар бар, бірақ фокусты жылжытатыны — Құсбелгі басқару элементінің OnUncheck сипатында:

SetFocus( BillingName )

Сондай-ақ фокусты бір өрістен екіншісіне тез жылжыту үшін Tab пернесін пайдалануға болады. Жақсырақ суреттеу үшін Tab пернесі анимацияда пайдаланылмады.

Бұл мысалды жасау үшін:

  1. Жаңа бағдарлама жасаңыз.
  2. "Жөнелту мекенжайы", "Аты:", "Мекенжай:", "Есеп-шот мекенжайы", "Аты:" және "Мекенжай:" мәтіні бар Белгі басқару элементтерін қосыңыз және оларды анимацияда көрсетілгендей орналастырыңыз.
  3. Мәтінді енгізу басқару элементін қосыңыз және оны ShippingName деп қайта атаңыз.
  4. Мәтінді енгізу басқару элементін қосыңыз және оны ShippingAddress деп қайта атаңыз.
  5. Құсбелгі басқару элементін қосыңыз және оның атын SyncAddresses деп өзгертіңіз.
  6. Бұл басқару элементінің Мәтін сипатын "Use Shipping address as Billing address" формуласына орнатыңыз.
  7. Мәтінді енгізу басқару элементін қосыңыз және оны BillingName деп қайта атаңыз.
  8. Осы басқару элементіндегі Әдепкі сипатын ShippingName формуласына орнатыңыз.
  9. Осы басқару элементіндегі DisplayMode сипатын If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ) формуласына орнатыңыз. Бұл құсбелгі басқару элементінің күйі негізінде осы басқару элементін автоматты түрде қосады немесе өшіреді.
  10. Мәтінді енгізу басқару элементін қосыңыз және оны BillingAddress деп қайта атаңыз.
  11. Осы басқару элементіндегі Әдепкі сипатын ShippingAddress формуласына орнатыңыз.
  12. Осы басқару элементіндегі DisplayMode сипатын If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ) формуласына орнатыңыз. Бұл құсбелгі басқару элементінің күйі негізінде осы басқару элементін автоматты түрде қосады немесе өшіреді.
  13. Құсбелгінің Әдепкі сипатын true формуласына орнатыңыз. Бұл есеп-шот мекенжайының әдепкі мәнін жөнелту мекенжайымен бірдей мәнді пайдалануға орнатады.
  14. Құсбелгінің OnCheck сипатын Reset( BillingName ); Reset( BillingAddress ) формуласына орнатыңыз. Егер пайдаланушы жөнелту және есеп-шот мекенжайларын синхрондауды таңдаса, бұл есеп-шот мекенжайы өрістеріндегі пайдаланушының кез келген енгізуін жояды, бұл әрқайсысындағы Әдепкі сипаттарының мәндерді сәйкес жөнелту мекенжайы өрістерінен шығарып алуға мүмкіндік береді.
  15. Құсбелгінің OnUncheck сипатын SetFocus( BillingName ) формуласына орнатыңыз. Егер пайдаланушы басқа есеп-шот мекенжайын таңдаса, бұл фокусты есеп-шот мекенжайындағы бірінші басқару элементіне жылжытады. DisplayMode сипаттарына байланысты басқару элементтері қосылып қойылған болады.

Тексеру мәселелеріне фокустау

Ескертпе

Бұл мысал сияқты Пішінді өңдеу басқару элементінде болып көрінгенмен, өкінішке орай бұл басқару элементі SetFocus функциясын әлі қолдамайды. Оның орнына, бұл мысалда енгізу басқару элементтерін орналастыру үшін айналдырылатын экран пайдаланылады.

Пішінді тексеру кезінде мәселе туындаған кезде хабарды көрсетіп қана қоймай, сонымен қатар пайдаланушыны бұзатын өріске апару пайдалы болуы мүмкін. Егер қарастырылып жатқан өріс айналдырғанда экраннан жоғалса және көрінбесе, бұл әсіресе пайдалы болуы мүмкін.

Деректерді енгізу пішінін тексерудің және тек хабар көрсетіліп қана қоймай, сонымен қатарьіпьі айналдырылып экраннан жоғалса да, енгізу фокусын бұзатын басқару элементіне орнатудың анимациясы.

Бұл анимацияда барлық өрістер дұрыс толтырылғанша тексеру түймешігі қайта-қайта басылады. Тінтуір меңзерінің экранның жоғарғы жағынан төмен қарай жылжымайтынына назар аударыңыз. Оның орнына SetFocus функциясы енгізу фокусын назар аударуды қажет ететін басқару элементіне мына формула арқылы жылжытты:

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

Бұл мысалды жасау үшін:

  1. Жаңа, бос телефон бағдарламасын жасаңыз.
  2. Кірістіру мәзірінен Жаңа экран пәрменін таңдаңыз, содан кейін Айналдыруға болады параметрін таңдаңыз.
  3. Экранның ортаңғы бөлімінде Мәтінді енгізу басқару элементтерін қосыңыз және оларды атаңыз Name, Street1, Street2, City, County, StateProvince, PostalCode және Phone деп атаңыз. Өрістерді идентификациялау үшін әрқайсысының үстінде Белгі басқару элементтерін қосыңыз. Егер барлық басқару элементтерін сыйдыру үшін жеткілікті ұзын болмаса, бөлім өлшемін өзгерту қажет болуы мүмкін.
  4. Экранның жоғарғы жағында, айналдырылатын бөлімнің үстінде құсбелгі Белгіше басқару элементін қосыңыз.
  5. Белгіше басқару элементінің OnSelect сипатын жоғарыда берілген If( IsBlank( ... формуласына орнатыңыз.

Экранды көрсету кезіндегі фокус

Ескертпе

Бұл мысал сияқты Пішінді өңдеу басқару элементінде болып көрінгенмен, өкінішке орай бұл басқару элементі SetFocus функциясын әлі қолдамайды. Оның орнына, бұл мысалда енгізу басқару элементтерін орналастыру үшін айналдырылатын экран пайдаланылады.

Енгізу басқару элементін көрсетуге ұқсас, деректерді енгізу экранын көрсеткенде, деректерді тезірек енгізу үшін бірінші енгізу басқару элементін фокустау пайдалы.

Деректерді енгізу экранын көрсеткенде SetFocus функциясын пайдалануды және пайдаланбауды қатар салыстыруды көрсететін анимация.

Бұл анимацияда сол жақтағы деректерді енгізу экраны SetFocus функциясын пайдаланбайды. Көрсеткенде ешбір енгізу басқару элементінде фокус болмайды, бұл пайдаланушының ішіне мәнді теру алдында Аты өрісін фокустау үшін Tab пернесін басуын, түртуін, тінтуірді немесе басқа әдісті пайдалануын қажет етеді.

Оң жақта бізде деректерді енгізу экранының OnVisible сипаты мына формулаға орнатылған дәл осындай бағдарлама бар:

SetFocus( Name )

Бұл фокусты Аты өрісіне автоматты түрде орнатады. Пайдаланушы алдын ала әрекет қажет болмастан, өрістер арасында теруді және Tab пернесімен ауысуды бірден бастай алады.

Бұл мысалды жасау үшін:

  1. Жоғарыдағы "Тексеру мәселелеріне фокустау" бағдарламасын жасаңыз.
  2. Осы экранда OnVisible сипатын SetFocus( Name ) формуласына орнатыңыз.
  3. Екінші экранды қосыңыз.
  4. Түймешік басқару элементін қосыңыз.
  5. Осы басқару элементінің OnSelect сипатын Navigate( Screen1 ) формуласына орнатыңыз.
  6. Осы экраннан бағдарламаны алдын ала қараңыз. Түймешікті басыңыз. OnVisible формуласы есептеледі және Аты өрісі автоматты түрде фокуста болады.