הפונקציה SetFocus
חל על: יישומי בד ציור
יישומים מונחי דגמים
מעבירה את מוקד הקלט אל פקד ספציפי.
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( Control )
- Control – נדרש. השליטה שיש לתת למיקוד הקלט.
דוגמאות
מיקוד בפקד קלט חדש שנחשף או הופעל
עגלות קניות רבות מאפשרות ללקוח להשתמש בכתובת המשלוח ככתובת החיוב, ומקלות על הצורך בהזנת אותו מידע פעמיים. אם יש צורך בכתובת חיוב שונה, תיבות קלט הטקסט של כתובת החיוב מופעלות, וזה עוזר להדריך את הלקוח אל פקדים חדשים מופעלים אלה עבור הזנת נתונים מהירה יותר.
קיימות נוסחאות רבות שלוקחות כאן חלק, אבל זו שמעבירה את המיקוד נמצאת במאפיין 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 שלהם.
התמקדות בבעיות אימות
הערה
למרות שנראה שדוגמה זו היא פקד Edit form, למרבה הצער 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( ...
המופיעה לעיל.
מיקוד בעת הצגת מסך
הערה
למרות שנראה שדוגמה זו היא פקד Edit form, למרבה הצער SetFocus עדיין אינה נתמכת על-ידי פקד זה. במקום זאת, דוגמה זו משתמשת במסך הניתן לגלילה כדי לארח את פקדי הקלט.
בדומה לחשיפת פקד קלט, בעת הצגת מסך הזנת נתונים, זה עוזר להתמקד בפקד ההזנה הראשון עבור הזנת נתונים מהירה יותר.
בהנפשה זו, מסך הזנת הנתונים משמאל אינו משתמש ב- SetFocus. בעת התצוגה, המיקוד אינו באף פקד קלט, מה שדורש מהמשתמש ללחוץ על tab, לגעת, להשתמש בעכבר או להשתמש באמצעי אחר כדי להתמקד בשדה שם לפני שיוכל להקליד בו ערך.
מימין יש לנו בדיוק את אותו יישום עם המאפיין OnVisible של מסך הזנת הנתונים המוגדר לנוסחה זו:
SetFocus( Name )
הדבר מגדיר את המיקוד לשדה שם באופן אוטומטי. המשתמש יכול להתחיל להקליד ולעבור בין השדות באמצעות Tab באופן מיידי מבלי שנדרשת פעולה קודמת.
כדי ליצור דוגמה זו:
- צור את היישום 'התמקדות בבעיות אימות" לעיל.
- במסך זה, הגדר את המאפיין OnVisible לנוסחה
SetFocus( Name )
. - הוסף מסך שני.
- הוסף פקד Button.
- הגדר את המאפיין OnSelect של פקד זה לנוסחה
Navigate( Screen1 )
. - הצג את היישום בתצוגה מקדימה ממסך זה. לחץ על הלחצן. הנוסחה OnVisible תוערך והשדה שם יעבור למיקוד באופן אוטומטי.
משוב
https://aka.ms/ContentUserFeedback.
בקרוב: במהלך 2024, נפתור בעיות GitHub כמנגנון המשוב לתוכן ונחליף אותו במערכת משוב חדשה. לקבלת מידע נוסף, ראה:שלח והצג משוב עבור