
ReadOnly ל-true. כך אי אפשר להקליד בה, ורק הכפתורים משנים את הערך.KeyPreview של הטופס ל-true, כך שהטופס מקבל את אירועי המקלדת לפני הפקדים. בשיעור משתמשים באירוע KeyDown ובערך KeyCode.הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט ב-#C - מחשבון פשוט - חלק 13» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בהרצאה של היום אנחנו נכסה נושאים קצת מתקדמים. דבר ראשון, כמה נושאים של גוי. הראשון זה Maximize ו-Minimize Box. יותר נכון רק ה-Max, סליחה, ה-Maximize Box.
העובדה שה-Maximize אצלנו מאופשר, לעומת Control-Shift X, כן, המחשבון שלי עשיתי קיצור דרך Control-Shift Xיו, המחשבון של Windows, ה-Maximize מנוטרל.
אצלנו אם אני אריץ אנחנו נראה שאני יכול בעצם לעשות מקסימייז וזה אין איזה צורה, אין איזה סיבה היינו רוצים שלא ניתן יהיה לשנות את הגודל של המחשבון בעצם שיהיה לו איזשהו גודל קבוע כמו המחשבון של ווינדוס שלא ניתן לשנות את הגודל שלו, לא מקסימייז, האמת שמינימייז כן אפשר
עכשיו באמת אני אראה לכם טריק, אני לא יודע אם זה יעבוד בעצם כל חלון אני יכול לבוא אליו כמו המחשבון להגיד לו מקסימייז זה המחשבון של Windows.
אז נגד זה אין זחמנות, אני רואה שהוא בעצם לא נותן כל כך לעשות מקסימייז, אבל להוציא אותו מהצורה הטבעית שלו גם אני יכול. אז זה סתם טריק, התעלמו.
טוב, הדבר הראשון זה המקסימייז, מה עוד אנחנו רוצים לדבר? הטקסטבוקס, אנחנו היינו רוצים להפוך אותו ל-read only. הטקסטבוקס של המחשבון של Windows, אני לא יכול לכתוב לתוכו.
אני לא יכול לכתוב לתוכו אותיות, אז הוא מגן על עצמו. אני יכול לכתוב בתוכו כמובן מספרים. אז גם אצלנו, אנחנו היינו רוצים שלא ניתן יהיה לכתוב, אני יכול לכתוב פה אותיות, זה לא תקין.
הייתי רוצה שכן יהיה ניתן להקליד מספרים, אבל בוא נגיד בצורה טיפה יותר מסודרת. הייתי רוצה גם להיות מסוגל ללחוץ על הקלידים של הפעולות החשבוניות, וגם ללחוץ על Enter ולעשות שווה, כמו במחשבון של ה-Windows.
אני יכול במחשבון של ווינדוס לעשות 123 ועוד 321, אנטר, וכל זה עשיתי מהקיבורט בלי להזיז את העכבר. העכבר שלי היה פה, הנה ראיתם, בלי חוטים.
אז גם את זה היינו רוצים לעשות, וזה בעצם הנושא השלישי. אנחנו רוצים ש-KeyDown יפעיל את ה-Numerals שלנו וגם את האופרציות שלנו. ודבר נוסף שהיינו רוצים זה אייקון.
כמו שלמחשבון של ווינדוס יש אייקון, היינו רוצים שגם למחשבון שלנו יהיה אייקון אבל לא האייקון הסטנדרטי שהדוט נט נותן לנו במתנה אלא אייקון שנוכל לבחור אולי אפילו לעצב בעצמנו אם יהיה זמן אני לא מאמין שיהיה זמן אז כנראה בהרצאה הבאה נטפל בתפריט שכמו שיש לווינדוס תפריט אז גם שלנו יהיה תפריט אולי גם נעשה איזשהו אבאוט אני לא יודע אם כזה כי זה אבאוט טיפה
יותר מתקדם אבל אין איזשהו אבאוט ובכלל את התפריט טוב אז בואו נתחיל אז דבר ראשון אמרנו בלי מקסימייז אז נסגור את המחשבון שלנו וניגש לתכונות של הטופס ובפרופרטיז אז כדי לנטרל את המקסימייז יש פה דבר פה שנקרא מקסימייז בוקס והוא true מקסימייז בוקס בעצם אם תקראו פה זה אומר שזה זמין אז אני אעשה עליו דאבל קליק והנה הוא נהיה אפור אז כבר מקסימייז אני לא
יכול לעשות אני עדיין יכול לעשות רי סייז אבל בואו נראה לפחות שהמקסימייז יסתדר יפה אין מקסימייז אבל עדיין יכול לעשות רי סייז טוב אז בואו נטפל גם ברי סייז אז הייתי רוצה שהגודל הנוכחי הוא גם יהיה הגודל הקבוע שלא ניתן לזוז ממנו אז זה חצי טריק יש לנו פה תכונה שנקראת סייז כמובן אני מדבר עכשיו על התכונות של הטופס תכונה שנקראת סייז עם ווידס
והייט אבל אני אקח דווקא את השורה הזו שמכילה את הווידס ואת ההייט בשורה אחת, נעשה לזה קופי ואני אלך כאן לתכונה שנקראת מקסימום סייז, הגודל המקסימלי ואני אעשה בפה פייסט.
יפה, מה זה אומר? זה אומר שאם עכשיו אני אנסה להגדיל את הטופס אני לא אצליח, אתם לא רואים שאני מנסה אבל אני מנסה, בואו נריץ את זה. נקטין את הוויז'ואל סטודיו ואת המחשבון של ווינדואוס וננסה להגדיל, הוא לא נותן לי, להקטין הוא נותן אבל להגדיל לא.
אתם רואים? האמת שכדי להקטין ולהגדיל יש לי פה עכבר ימני אני יכול להגיד לו size זה לא נראה שזה עובד אבל האמת היא שזה בנוי לעבוד עם הכיבורד שמאלה לא עובד אבל ימינה הוא כן עובד שימו לב שהעכבר שלי נמצא פה עכשיו אני עובד עם הכיבורד בדרך כלל אני יכול עכשיו
לעשות חץ למטה ובמקביל לערוך לשני הכיוונים די נוח אם אתם מנסים להיגמל מעכבר מקלדת enter שומר על הגודל אבל גם להקטין אני לא רוצה זאת אומרת, אוקיי, גודל מקסימלי, אני רוצה שזה יהיה הגודל, אבל אני לא רוצה שניתן יהיה לעשות פחות מזה.
אז בואו נעשה שהתכונה של הגודל המינימלי תהיה אותו גודל. אז לקחנו את maximum size ושמנו אותו פה. עכשיו, מינימום size, גם הוא יהיה אותו גודל בדיוק. נעשה לו paste ונריץ.
יפה. נקטין את ה-visual studio. עכשיו אני לא יכול לא להגדיל ולא להקטין, זה תקוע. להם אני אנסה טייז, ועם החיצים זה לא עובד, אין עם מי לדבר.
דרך אגב, אני יכול לעשות אלט רווח, ואני מקבל את התפריט הזה, למי ששוב מנסה להיגמל מהעכבר. דרך אגב, זה רעיון טוב לנסות להיגמל מהעכבר, כי מקומות עבודה, במיוחד אנשים עם הרבה מאוד ניסיון, לא אוהבים לעבוד עם עכבר. אז אם אתם יודעים לעבוד בלי עכבר, זה מראה שיש לכם הרבה ניסיון.
אז אם אתם רוצים להרשים מישהו שיש לו הרבה ניסיון, מיד יחוש את כמות הניסיון שלכם לפי כמה שאתם נדבקים לעכבר. אלט רווח נותן את התפריט, זה נקרא סיסטם מניו, ועם החיצים למעלה ולמטה אני יכול לבחור.
אני יכול לבחור פה את מוב ולהזיז את הטופס. דרך אגב, זו תזוזה של 10 פיקסלים, אני חושב. טרון וחצי למטה זו תזוזה של פיקסל אחד. זה מאוד חשוב. ו-Enter מקבל, זה דרך אגב אסקייפ מחזיר אותו אחורה.
אז אם אני אגיד לו עוד פעם move, נזוז, נזוז, נזוז, נזוז, נזוז, נזוז, נזוז, נסה אסקייפ, הוא חוזר למקום המקורי. טוב, אבל את הגודל קיבלנו, לא ניתן להגדיל ולהקטין.
שימו לב אבל שהעכבר, את העכבר, על זה אני לא שולט. זאת אומרת, אני מניח שכמו כל דבר בחיים, אם באמת הייתי רוצה, הייתי גורם גם לעכבר להישאר כל הזמן בצורה של העכבר המקורי. זאת אומרת, זה עכבר, הצורה שיש לי כאן זה נקרא arrow, חץ.
עכשיו כשאני מרחף פה מעל הגבול, אם לא משתנה הוא יישאר חץ. במחשבון שלנו כשאני מרחף מעל הגבול, אז ה-arrow, החץ נהיה, זה נקרא, אם קוראים לזה west-east arrow, זה נקרא north-south resize, north-south resize, גם זה north-south resize, גם זה east-west
resize, זה נקרא North, East, South, West Resize. בקיצור, יש להם שמות כאלה, כל מיני שמות מוזרים. אז עדיין אצלנו אנחנו מציגים את העכבר כשונה.
אני מניח שגם בזה אפשר לטפל, אבל אני לא יודע אם במגבלות של הידע שלכם כרגע ניתן לטפל בזה. זה אולי דורש כלים יותר מתקדמים.
טוב, אז טיפלנו ב-Resize. בואו נחזור שוב, מה עוד רצינו לעשות. אז זה היה maximize ו-resize. הדבר הבא זה שהטקסטבוקס יהיה read-only. טוב, זה די טריוויאלי, אז שוב, כרגע הבעיה שאני יכול להקליט פה מה שמתחשק לי וזה חייב לעצור. אז נעצור את המחשבון ונלך לתכונות של הטקסטבוקס.
יש פה פשוט תכונה שנקראת read-only. כרגע היא בפולט, נעשה עליה דאבל קליק. הבעיה היא שכשהיא נהיית true והוא read-only ועכשיו הוא, כמו שהוא מסביר פה, לא ניתן לכתוב בתוכו, זה בעצם טקסטבוקס, עכשיו הוא קורא לו edit control כי בימים עברו בהיסטוריה של בגלגול הקודם של תכנות חלונאי שזה היה ב-c++ קראו לטקסטבוקס edit control מאז הם שינו את זה
לטקסטבוקס אבל עדיין ב-help מי שכתב את ה-help נשאר כנראה עם השם הישן בכל מקרה, האם ניתן לשנות את הטקסט או לא, אבל בסדר, לא ניתן אבל זה אפור, אם אני אריץ את זה, זה נראה אפור, זה לא טוב, אני רוצה שזה יהיה לבן אז פשוט נהפוך את זה ללבן, אז יש לו פור קלר, זה הצבע של הטקסט, זה יישאר כווינדו טקסט
ויש לו, האם יש לו בקלר, כן יש לו בקלר, כרגע זה צבע של קונטרול, זה לא צבע אפור, זה צבע של קונטרול זאת אומרת כמו שהווינדואוס מקונפג אצלי אז הוא כרגע אפור אבל אני יכול לקונפג את הווינדואוס אחרת פרופרטיז על הדסקטופ עצמו ואפירנס, דסקטופ, שנייה אחת אני אבדוק את זה
בכל מקרה בדיספלי פרופרטיז כן יש לנו אפירנס ובאפירנס קודם כל אני יכול לבחור איזשהו color scheme דוגמה olive green וזה יהפוך להיות הצבע של ה-Windows שלי או אני יכול לבחור ב-Blue שזה ה-Default ולזה אנחנו רגילים אבל גם את זה וגם את האולי וגם את ה-Color סכום שאני אבחר אני יכול ב-Advanced לעצב בדיוק לקירות עיניים זאת אומרת האם זה יהיה כחול כזה או כחול אחר אז כמו שהייתם
בחרתי את זה אז הוא אומר לי אוקיי Active Title Bar איזה פונט זה יהיה ואיזה Size זה יהיה ואיזה Color ו-Color 2 כי זה עובר מ-Color 1 ל-Color 2 זה כפתור כזה, איזה color ואיזה font color הוא יהיה ו-window, האם הוא לבן.
בקיצור, אז כל זה ניתן לקונפג את זה, אז האפור שאתם רואים זה לא אפור, אלא זה הצבע שבחור כאן בסיסטם. אז כאן זה לא צבע אפור, זה צבע של ה-control.
ובכלל לא מזה הצבע של הסיסטם, כמו שראינו, זה תלוי איך הסיסטם מוגדרת. מה שאנחנו רוצים זה בקאסטם, לא משנה איך הסיסטם מוגדרת, מה עם צבע כזה או צבע ככה אחר לגבי התנהגויות של כל מיני פקדים, אנחנו רוצים שזה תמיד יהיה לבן.
שהטקסטבוקס הזה תמיד יהיה לבן גם כשהוא ב-read only. בואו נריץ את זה. אז אני אנסה, אני לא מצליח, אני מנסה להקליד והוא לא כותב שום דבר.
יפה, אז הצלחנו. זה היה read only. הדבר הבא קצת יותר מאתגר, לעשות שגם הכיבורד יוכל לגרום להקלדת נתונים.
אז אם נריץ שוב את המחשבון שלנו ונגיד לו 123, אבל אני אומר לו את זה עם הכיבורד, 123. כן, לא משנה מה אני אומר על הכיבורד, זה לא עוזר.
הכיבורד בכלל תלוש מהאפליקציה שלנו. האפליקציה שלנו מתעלמת לחלוטין מהכיבורד, חוץ מאשר אלט רווח, שזה כבר נקרא סיסטם קי. זה לא בדיוק קי רגיל בכלל אלט זה משהו מיוחד גם אלט F4 סוגר אבל כן האפליקציה שלנו by default מתנהגת כמו כל אפליקציה אבל ספציפית לחיצה לכאן 2 3 לא גורמת לשום דבר לעומת המחשבון של Windows אני יכול להגיד לו 123 ועוד 321 Enter והוא
נותן את התוצאה Backspace סליחה Delete מאפס לי 123 Escape מאפס לי וכולי 123, Backspace, Backspace, ה-Backspace על ה-Keyboard עובד, אז אני רוצה שהדברים האלה גם יהיו זמינים אצלי.
איך עושים דברים שכאלה? זה לא כזה מורכב, אז ככה, אנחנו הולכים למחשבון, ואנחנו הולכים לאירועים, Events, ובפורם עצמו יש אירוע שנקרא Key, אז זהו, יש כאן, יש שלושה Key, יש Key Down, Key Press ו-Key Up.
אז מה ההבדל בין Key Down ל-Key Press ל-Key Up? קי דאון וקי אב זה שני הפכים הקי קי זה קלד עם דלד, קליד במקלדת אז פה הוא נלחץ ופה הוא שוחרר מה זה פרס?