SetFocus פונקציה

חל על: אפליקציות Canvas המבוססות על מודלים

מעבירה את מוקד הקלט אל פקד ספציפי.

Description

הפונקציה SetFocus מעניקה לפקד את מוקד הקלט. הקשות המשתמש מתקבלות לאחר מכן על-ידי פקד זה, וזה מאפשר להן להקליד בפקד קלט טקסט או להשתמש במקש Enter כדי לבחור לחצן. המשתמש יכול גם להשתמש במקש Tab, במגע, בעכבר או במחווה אחרת כדי להעביר את מיקוד הקלט בעצמו. התנהגות המפתח של Tab נשלטת על ידי המאפיין TabIndex.

השתמש בפונקציה SetFocus כדי להגדיר את המוקד כאשר (כל אחת מהן עם דוגמה להלן):

  • פקד קלט חדש נחשף או מופעל, כדי להדריך את המשתמש לגבי הפעולות הבאות ועבור הזנת נתונים מהירה יותר.
  • טופס מאומת, כדי למקד ולהציג את פקד הקלט המפר את הכלל עבור פתרון מהיר.
  • מוצג מסך כדי להתמקד בפקד הקלט הראשון עם המאפיין OnVisible של המסך.

הפקד עם המיקוד עשוי להיות שונה באופן חזותי בהתבסס על המאפיינים FocusedBorderColor ו- FocusedBorderThickness.

מגבלות

SetFocus ניתן להשתמש רק עם:

אין באפשרותך להגדיר את המיקוד לפקדים שנמצאים בתוך פקד Gallery‎, פקד Edit form או רכיב. SetFocus ניתן להשתמש בפקד במסך הניתן לגלילה.

אינך יכול להגדיר את המיקוד לפקדים הנמצאים בתוך פקד Container‎.

באפשרותך להגדיר את המוקד לפקדים על המסך בלבד כמו הנוסחה המכילה את SetFocus השיחה.

הניסיון להגדיר את המיקוד לפקד שמאפיין DisplayMode שלו מוגדר לערך מושבת אינו בעל השפעה. המיקוד יישאר במקום שהיה בעבר.

ב- Apple iOS, לוח המקשים הרך יוצג באופן אוטומטי רק SetFocus אם הופעל על-ידי פעולת משתמש ישירה. לדוגמה, הפעלה ממאפיין OnSelect של לחצן תציג את המקלדת הרכה בעוד שההפעלה מ- OnVisible של המסך לא תעשה זאת.

ניתן להשתמש בנוסחאות SetFocus אופן פעולה בלבד.

תחביר

SetFocus( פקד )

  • שליטה – חובה. השליטה שיש לתת למיקוד הקלט.

דוגמאות

מיקוד בפקד קלט חדש שנחשף או הופעל

עגלות קניות רבות מאפשרות ללקוח להשתמש בכתובת המשלוח ככתובת החיוב, ומקלות על הצורך בהזנת אותו מידע פעמיים. אם יש צורך בכתובת חיוב שונה, תיבות קלט הטקסט של כתובת החיוב מופעלות, וזה עוזר להדריך את הלקוח אל פקדים חדשים מופעלים אלה עבור הזנת נתונים מהירה יותר.

הנפשה של בחירה להשתמש בכתובת חיוב מותאמת אישית, כאשר המיקוד מועבר לפקד הזנת שם החיוב כתוצאה מכך, תוך כיבוי הסינכרון האוטומטי עם כתובת החיוב.

קיימות נוסחאות רבות שלוקחות כאן חלק, אבל זו שמעבירה את המיקוד נמצאת במאפיין OnUncheck של הפקד Check box:

SetFocus( BillingName )

ניתן להשתמש במקש Tab גם כדי להעביר את המיקוד במהירות משדה אחד לשני. כדי להמחיש טוב יותר, המקש Tab לא שימש בהנפשה.

כדי ליצור דוגמה זו:

  1. צור יישום חדש.
  2. הוסף פקדי Label‎ עם הטקסט "כתובת משלוח", "שם:", "כתובת:", "כתובת חיוב," "שם:" ו"כתובת:" ומקם אותם כפי שמוצג בהנפשה.
  3. הוסף פקד Text Input ושנה את שמו ל- ShippingName.
  4. הוסף פקד Text Input ושנה את שמו ל- ShippingAddress.
  5. הוסף פקד Check box ושנה את שמו ל- SyncAddresses.
  6. הגדר את המאפיין Text‎ של פקד זה לנוסחה "Use Shipping address as Billing address".
  7. הוסף פקד Text Input ושנה את שמו ל- BillingName.
  8. הגדר את המאפיין Default‎ של פקד זה לנוסחה ShippingName.
  9. הגדר את המאפיין DisplayMode‎ של פקד זה לנוסחה If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). פעולה זו תהפוך אוטומטית את הפקד לזמין או ללא זמין בהתבסס על המצב של פקד תיבת הסימון.
  10. הוסף פקד Text Input ושנה את שמו ל- BillingAddress.
  11. הגדר את המאפיין Default‎ של פקד זה לנוסחה ShippingAddress.
  12. הגדר את המאפיין DisplayMode‎ של פקד זה לנוסחה If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). פעולה זו תהפוך אוטומטית את הפקד לזמין או ללא זמין בהתבסס על המצב של פקד תיבת הסימון.
  13. הגדר את המאפיין Default‎ של תיבת הסימון לנוסחה true. ברירת המחדל תהיה שכתובת החיוב תשתמש באותו ערך כשל כתובת המשלוח.
  14. הגדר את המאפיין OnCheck של תיבת הסימון לנוסחה Reset( BillingName ); Reset( BillingAddress ). אם המשתמש יבחר לסנכרן כתובות משלוח וחיוב, פעולה זו תנקה את כל קלט המשתמש בשדות כתובת החיוב המאפשרים את מאפייני Default בכל אחד מהם כדי למשוך את הערכים משדות כתובת המשלוח התואמים.
  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. במקטע המרכזי של המסך, הוסף פקדי Text Input וקרא להם שם, רחוב 1, רחוב 2, עיר, מדינה, מחוז, מיקוד וטלפון. הוסף פקדי Label‎ מעל כל אחד כדי לזהות את השדות. ייתכן שיהיה עליך לשנות את גודל המקטע אם אינו ארוך דיו כדי להתאים לכל הפקדים.
  4. הוסף סימן ביקורת פקד Icon‎ בראש המסך, מעל המקטע הנגלל.
  5. הגדר את המאפיין OnSelect של פקד הסמל לנוסחה If( IsBlank( ... המופיעה לעיל.

מיקוד בעת הצגת מסך

הערה

למרות שדוגמה זו מופיעה כפקד טופס עריכה , למרבה הצער SetFocus , פקד זה עדיין אינו תומך בה. במקום זאת, דוגמה זו משתמשת במסך הניתן לגלילה כדי לארח את פקדי הקלט.

בדומה לחשיפת פקד קלט, בעת הצגת מסך הזנת נתונים, זה עוזר להתמקד בפקד ההזנה הראשון עבור הזנת נתונים מהירה יותר.

הנפשה המציגה השוואה זה לצד זה של שימוש SetFocus ולא שימוש בה בעת הצגת מסך הזנת נתונים.

בהנפשה זו, מסך הזנת הנתונים מימין אינו משתמש ב- SetFocus. בעת התצוגה, המיקוד אינו באף פקד קלט, מה שדורש מהמשתמש ללחוץ על tab, לגעת, להשתמש בעכבר או להשתמש באמצעי אחר כדי להתמקד בשדה שם לפני שיוכל להקליד בו ערך.

מימין יש לנו בדיוק את אותו יישום עם המאפיין OnVisible של מסך הזנת הנתונים המוגדר לנוסחה זו:

SetFocus( Name )

הדבר מגדיר את המיקוד לשדה שם באופן אוטומטי. המשתמש יכול להתחיל להקליד ולעבור בין השדות באמצעות Tab באופן מיידי מבלי שנדרשת פעולה קודמת.

כדי ליצור דוגמה זו:

  1. צור את היישום 'התמקדות בבעיות אימות" לעיל.
  2. במסך זה, הגדר את המאפיין OnVisible לנוסחה SetFocus( Name ).
  3. הוסף מסך שני.
  4. הוסף פקד Button‎.
  5. הגדר את המאפיין OnSelect של פקד זה לנוסחה Navigate( Screen1 ).
  6. הצג את היישום בתצוגה מקדימה ממסך זה. לחץ על הלחצן. הנוסחה OnVisible תוערך והשדה שם יעבור למיקוד באופן אוטומטי.