הערה
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות להיכנס או לשנות מדריכי כתובות.
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות לשנות מדריכי כתובות.
חל על: אפליקציות Canvas
המבוססות על מודלים
מעבירה את מוקד הקלט אל פקד ספציפי.
Description
הפונקציה SetFocus מעניקה לפקד את מוקד הקלט. הקשות המשתמש מתקבלות לאחר מכן על-ידי פקד זה, וזה מאפשר להן להקליד בפקד קלט טקסט או להשתמש במקש Enter כדי לבחור לחצן. המשתמש יכול גם להשתמש במקש Tab, במגע, בעכבר או במחווה אחרת כדי להעביר את מיקוד הקלט בעצמו. התנהגות המפתח של Tab נשלטת על ידי המאפיין TabIndex.
השתמש בפונקציה SetFocus כדי להגדיר את המוקד כאשר (כל אחת מהן עם דוגמה להלן):
- פקד קלט חדש נחשף או מופעל, כדי להדריך את המשתמש לגבי הפעולות הבאות ועבור הזנת נתונים מהירה יותר.
- טופס מאומת, כדי למקד ולהציג את פקד הקלט המפר את הכלל עבור פתרון מהיר.
- מוצג מסך כדי להתמקד בפקד הקלט הראשון עם המאפיין OnVisible של המסך.
הפקד עם המיקוד עשוי להיות שונה באופן חזותי בהתבסס על המאפיינים FocusedBorderColor ו- FocusedBorderThickness.
מגבלות
SetFocus ניתן להשתמש רק עם:
- כפתור שליטה
- סמל שליטה
- תמונה שליטה
- תווית שליטה
- פקד TextInput
אין באפשרותך להגדיר את המיקוד לפקדים שנמצאים בתוך פקד Gallery, פקד Edit form או רכיב. SetFocus ניתן להשתמש בפקד במסך הניתן לגלילה.
אינך יכול להגדיר את המיקוד לפקדים הנמצאים בתוך פקד Container.
באפשרותך להגדיר את המוקד לפקדים על המסך בלבד כמו הנוסחה המכילה את SetFocus השיחה.
הניסיון להגדיר את המיקוד לפקד שמאפיין DisplayMode שלו מוגדר לערך מושבת אינו בעל השפעה. המיקוד יישאר במקום שהיה בעבר.
ב- Apple iOS, לוח המקשים הרך יוצג באופן אוטומטי רק SetFocus אם הופעל על-ידי פעולת משתמש ישירה. לדוגמה, הפעלה ממאפיין OnSelect של לחצן תציג את המקלדת הרכה בעוד שההפעלה מ- OnVisible של המסך לא תעשה זאת.
ניתן להשתמש בנוסחאות SetFocus אופן פעולה בלבד.
תחביר
SetFocus( פקד )
- שליטה – חובה. השליטה שיש לתת למיקוד הקלט.
דוגמאות
מיקוד בפקד קלט חדש שנחשף או הופעל
עגלות קניות רבות מאפשרות ללקוח להשתמש בכתובת המשלוח ככתובת החיוב, ומקלות על הצורך בהזנת אותו מידע פעמיים. אם יש צורך בכתובת חיוב שונה, תיבות קלט הטקסט של כתובת החיוב מופעלות, וזה עוזר להדריך את הלקוח אל פקדים חדשים מופעלים אלה עבור הזנת נתונים מהירה יותר.
קיימות נוסחאות רבות שלוקחות כאן חלק, אבל זו שמעבירה את המיקוד נמצאת במאפיין OnUncheck של הפקד Check box:
SetFocus( BillingName )
ניתן להשתמש במקש Tab גם כדי להעביר את המיקוד במהירות משדה אחד לשני. כדי להמחיש טוב יותר, המקש Tab לא שימש בהנפשה.
כדי ליצור דוגמה זו:
- צור יישום חדש.
- הוסף פקדי Label עם הטקסט "כתובת משלוח", "שם:", "כתובת:", "כתובת חיוב," "שם:" ו"כתובת:" ומקם אותם כפי שמוצג בהנפשה.
- הוסף פקד Text Input ושנה את שמו ל- ShippingName.
- הוסף פקד Text Input ושנה את שמו ל- ShippingAddress.
- הוסף פקד Check box ושנה את שמו ל- SyncAddresses.
- הגדר את המאפיין Text של פקד זה לנוסחה
"Use Shipping address as Billing address". - הוסף פקד Text Input ושנה את שמו ל- BillingName.
- הגדר את המאפיין Default של פקד זה לנוסחה
ShippingName. - הגדר את המאפיין DisplayMode של פקד זה לנוסחה
If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). פעולה זו תהפוך אוטומטית את הפקד לזמין או ללא זמין בהתבסס על המצב של פקד תיבת הסימון. - הוסף פקד Text Input ושנה את שמו ל- BillingAddress.
- הגדר את המאפיין Default של פקד זה לנוסחה
ShippingAddress. - הגדר את המאפיין DisplayMode של פקד זה לנוסחה
If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ). פעולה זו תהפוך אוטומטית את הפקד לזמין או ללא זמין בהתבסס על המצב של פקד תיבת הסימון. - הגדר את המאפיין Default של תיבת הסימון לנוסחה
true. ברירת המחדל תהיה שכתובת החיוב תשתמש באותו ערך כשל כתובת המשלוח. - הגדר את המאפיין OnCheck של תיבת הסימון לנוסחה
Reset( BillingName ); Reset( BillingAddress ). אם המשתמש יבחר לסנכרן כתובות משלוח וחיוב, פעולה זו תנקה את כל קלט המשתמש בשדות כתובת החיוב המאפשרים את מאפייני Default בכל אחד מהם כדי למשוך את הערכים משדות כתובת המשלוח התואמים. - הגדר את המאפיין 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 )
)
כדי ליצור דוגמה זו:
- צור יישום טלפון חדש וריק.
- מתפריט הוספה, בחר מסך חדש ולאחר מכן בחר נגלל.
- במקטע המרכזי של המסך, הוסף פקדי Text Input וקרא להם שם, רחוב 1, רחוב 2, עיר, מדינה, מחוז, מיקוד וטלפון. הוסף פקדי Label מעל כל אחד כדי לזהות את השדות. ייתכן שיהיה עליך לשנות את גודל המקטע אם אינו ארוך דיו כדי להתאים לכל הפקדים.
- הוסף סימן ביקורת פקד Icon בראש המסך, מעל המקטע הנגלל.
- הגדר את המאפיין OnSelect של פקד הסמל לנוסחה
If( IsBlank( ...המופיעה לעיל.
מיקוד בעת הצגת מסך
הערה
למרות שדוגמה זו מופיעה כפקד טופס עריכה , למרבה הצער SetFocus , פקד זה עדיין אינו תומך בה. במקום זאת, דוגמה זו משתמשת במסך הניתן לגלילה כדי לארח את פקדי הקלט.
בדומה לחשיפת פקד קלט, בעת הצגת מסך הזנת נתונים, זה עוזר להתמקד בפקד ההזנה הראשון עבור הזנת נתונים מהירה יותר.
בהנפשה זו, מסך הזנת הנתונים מימין אינו משתמש ב- SetFocus. בעת התצוגה, המיקוד אינו באף פקד קלט, מה שדורש מהמשתמש ללחוץ על tab, לגעת, להשתמש בעכבר או להשתמש באמצעי אחר כדי להתמקד בשדה שם לפני שיוכל להקליד בו ערך.
מימין יש לנו בדיוק את אותו יישום עם המאפיין OnVisible של מסך הזנת הנתונים המוגדר לנוסחה זו:
SetFocus( Name )
הדבר מגדיר את המיקוד לשדה שם באופן אוטומטי. המשתמש יכול להתחיל להקליד ולעבור בין השדות באמצעות Tab באופן מיידי מבלי שנדרשת פעולה קודמת.
כדי ליצור דוגמה זו:
- צור את היישום 'התמקדות בבעיות אימות" לעיל.
- במסך זה, הגדר את המאפיין OnVisible לנוסחה
SetFocus( Name ). - הוסף מסך שני.
- הוסף פקד Button.
- הגדר את המאפיין OnSelect של פקד זה לנוסחה
Navigate( Screen1 ). - הצג את היישום בתצוגה מקדימה ממסך זה. לחץ על הלחצן. הנוסחה OnVisible תוערך והשדה שם יעבור למיקוד באופן אוטומטי.