WPF: תיבת טקסט
-
האם ישנה דרך להגדיר בזאמל שהתיבת טקסט תקבל תווים מסוג מסוים? לדוג' שהיא תקבל רק מספרים או רק אותיות וכדו'?
כמו כן, האם ישנה אפשרות להגדיר שהיא מיועדת למטבע כגון ש"ח, דולר וכדו'?
כרגע אני מבצע את הבדיקה ע"י פונקציות של אימות נתונים כאשר התיבה מאבדת את הפוקוס, אולם השאלה האם ישנה דרך להגביל את זה עוד קודם לכן?
תודה רבה!פורסם במקור בפורום CODE613 ב30/08/2015 20:44 (+03:00)
-
-
הנה דוגמא קצרה
בתיבה זו אפשר להקליד רק מספריםclass TextBoxEX: TextBox { protected override void OnPreviewKeyDown(System.Windows.Input.KeyEventArgs e) { base.OnPreviewKeyDown(e); if (!IsNumber(e.Key)) { e.Handled = true; } } private bool IsNumber(Key key) { return (int)key >= (int)Key.D0 && (int)key <= (int)Key.D9; } }
פורסם במקור בפורום CODE613 ב30/08/2015 23:19 (+03:00)
-
זה חזק ממש!!
אם מנסים להקליד תווים אחרים - הוא פשוט לא מגיב :lol: :lol:
מימשתי מתודה דומה לטקסט בלבד.הבעיה היא שחוץ מהתווים הללו הוא לא קולט שום לחיצה על המקלדת, ואפי' למחוק אי אפשר...
וכדי שיהיה אפשר למחוק או דברים נוספים צריך להגדיר לו כל מקש ומקש בנפרדפורסם במקור בפורום CODE613 ב31/08/2015 00:11 (+03:00)
-
צריך לקחת בחשבון מקשי מערכת וקיצורי מקשים מובנים (Ctrl+Z למשל).
שים לב שייתכן שתרצה לפעמים מס' עם שברים ואז שיכולו להכניס נקודה, אבל רק אחת... ולפעמים תרצה שיוכלו להכניס מינוס שזה מקף בהתחלה.
אפשר לטפל בהכל, הכי קל זה לחפש באינטרנט.
אני בשביל לא להשתגע אני בוחר או לא להגביל בכלל ורק לאגד למאפיין מס' ואז יש אינדיקציה מובנית של ערך לא תקף (מסגרת אדומה) או להשתמש בפקד מוכן של חברה מוכרת כמו http://wpftoolkit.codeplex.com/.פורסם במקור בפורום CODE613 ב31/08/2015 12:03 (+03:00)