
mnu, למשל mnuExit, כדי שישמש בקוד.Close() של הטופס.DropDownItems), ומסמנים את הנבחר.sender מכיל את הפריט שנלחץ. יש להמיר אותו ל-ToolStripMenuItem לפני השימוש בתכונות שלו, למשל BackColor לצביעת הטופס.הטקסט המלא של הדקות הראשונות בהרצאה «תפריטים וסרגלים - Menu and Toolbar» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הסדרה הבאה של הרכיבים שאנחנו הולכים לראות אלו תפריטים וסרגלי כלים. זה נמצא כאן. מניוס אנד טולבארס. הדבר הראשון שאנחנו הולכים לראות זה המניו סטריפ.
מניו סטריפ זה בעצם תפריט שאנחנו יכולים לראות בדומה לתפריט הזה שרואים פה למעלה. המילה סטריפ זה רצועה ובעצם כל התפריטים וכל הסרגלי כלים שאנחנו רואים פה זה בעצם הן רצועות כאלה שנסתרעות לרוחב הטופס.
אז כל מה שאנחנו צריכים לעשות זה פשוט לגרור את המניו סטריפ על הטופס שלנו, ואנחנו רואים אותו פה למעלה. ואז אנחנו יכולים פשוט בעזרת הדיזיינר להיכנס כאן בקליק אחד עם העכבר ולהתחיל לערוך את התפריט שלנו.
לדוגמה, נניח פייל, אני לוחץ אנטר ואז עוד פעם אנטר, זה נכנס פנימה, או שאני לוחץ על המקש, נלחץ פנימה ויכול לערוך את התת-תפריט הבא. בואו נניח שזה יהיה Open, Enter, Enter אמור לפתוח לי עוד אחד, Save, בואו ניכנס ל-Open ונגדיר כאן Existing או New.
ככה אנחנו יכולים להגדיר תפריטים ותתי-תפריטים. יש לנו אפשרות לבחור תפריט, הכל בעזרת הדיזיינר, ולהגדיר לו מה שנקרא Separator, קו הפרדה.
יש לנו אפשרות להמשיך, בואו ניקח ונגדיר שזה יהיה Exit, בצורה כזאת. דברים נוספים שאנחנו יכולים להגדיר, בואו נלך ונגדיר כאן Colors: Red, Green, Blue.
אנחנו יכולים לבחור כל אחד מהתפריטים ופשוט לתת לו את התכונות שלו. לדוגמה, בואו ניקח וניתן צבע רקע שיתאים לצבע. זה יהיה אדום, זה יהיה ירוק, ירוק כלשהו, ובואו נבחר את זה ככחול.
דבר נוסף שאנחנו יכולים להגדיר זה שיהיה איזשהו צ'קבוקס או איזשהו סימון כאשר אנחנו בוחרים את התפריט. בואו ניקח לדוגמה את הבלו ונחפש את התכונה הזאתי, אמורה להיות כאן, צ'ק און קליק, בואו נסמן true, וזה אומר שאם אנחנו בוחרים אותה אז יהיה
ווי אם אנחנו בוחרים פעם נוספת אז הווי ייעלם בואו נניח שניתן את התכונה הזאת גם לשני החבר'ה האחרים בעזרת קונטרול בחרתי את שניהם ואז אם בעזרת קונטרול אני בוחר סדרה של רכיבים אני יכול לתת תכונה בבת אחת לכולם בואו נריץ רגע את הטופס קונטרול F5 הטופס רץ נפתח את הקולורס נלחץ על הרד עוד פעם קולורס שוב לחיצה
על הרד ושימו לב שכל לחיצה יש לי סימון ואני מוריד את הסימון בצורה כזאת. אוקיי, עכשיו אני רוצה לבצע פעולה מסוימת מאחורה.
אז דבר ראשון, מה שחשוב לעשות זה לבחור את התת-תפריט שאני רוצה לתת לו תכונה, בעצם אני צריך לעשות את זה לכל אחד מהם, ואני נותן לו name. תחילית של תפריט זה mnu, קיצור של מנין, ויהיה mnu exit.
אחרי שיש לו name, אני פשוט מאוד לוחץ עליו דאבל קליק, ואז אני מגיע לאירוע שלו. באירוע שלו אני יכול לכתוב קוד והאירוע יתבצע כאשר כמובן הוא יגיע.
במקרה הזה זה קליק, בואו נרשום פה קריאה לפונקציית Close וזה גורם לסגירה של הטופס. בואו נריץ, פייל, אקזיט, האירוע מתבצע, טופס נסגר, מעולה.
בואו בדומה נכתוב את הקוד מאחורי התפריט של הצבעים ומה שנעשה זה פשוט מאוד נצבע את צבע הרקע של הטופס בצבע של התפריט. אז לצורך כך מה שאני אעשה במקום לשכפל קוד אני פשוט אבחר על ידי קונטרול את שלושת התפריטים נלך לאירועים שלהם נלך לאירוע קליק ונרשום פה לדוגמה color menu underline click אנחנו מגיעים לאירוע הזה ומי שמפעיל את האירוע זה שלושת תפריטי הצבעים כי הגענו אל הפונקציה הזאת על ידי זה שסימנו את שלושת
תפריטי הצבעים אם עכשיו אני אעשה פה message box ויריץ את הטופס כל אחד מהם יגרום להפעלה של הפונקציה הזאת ובכל לחיצה אני אראה את המסג'בוקס.
הנה אדום מראה לי את המסג'בוקס, הנה ירוק מראה לי את המסג'בוקס, הנה כחול מראה לי את המסג'בוקס, ומה שאני רוצה לעשות זה להגיע לתפריט שהעלה את האירוע, זה כמובן יהיה ה-sender.
אני רוצה להמיר אותו לאובייקט הנכון, והשאלה היא מהו האובייקט הנכון. אם אני עכשיו תופס, בוא נחזור ונתפוס לדוגמה את ה-red, נסתכל פה למעלה, ושנייה אפתח טיפה את החלונית הזאת, ונראה שהסוג שלו זה Tool Strip Menu Item.
נחזור לקוד, ואנחנו יכולים לבצע המרה ל-Tool Strip Menu Item, ואז להגיע לדוגמה לבק קולור שלו. ללכת ל-Tofth This.BackColor ולהכניס את הצבע שנבחר.
בואו נריץ, נבחר את האדום ויש לנו אדום, נבחר את הירוק ויש לנו ירוק, נבחר את הכחול ויש לנו כחול. כלומר, הקוד עצמו עובד כמו שצריך, הבעיה היא שברגע שאני לוחץ על מישהו הוא מסומן ואנחנו צריכים לפתור את הסיטואציה הזאת כי אנחנו רוצים שרק אחד מהם יסומן ולא רק זה, כאשר אנחנו בוחרים מישהו אחר אנחנו רוצים שהסימון הקודם ייעלם.
אז איך אנחנו יכולים לבצע את הקונספט הזה? הנה התכונות וזה התפריטים עצמם. אז למעשה מה שאפשר לעשות זה לבטל את הפעולה של צ'ק און קליק. בואו נגדיר שזה לא מתבצע כי זה לא מתאים לנו, נגדיר פולס ואנחנו יכולים לראות ששלושת החבריה האלה נמצאים מתחת לתפריט קולורס.
תפריט הקולורס אם אנחנו מסתכלים עליו אנחנו רואים שעוד לא נתנו לו שם, אז בואו ניתן לו mnu-colors גם הוא טול סטריפ מניו אייטם ושלושת התפריטים של הצבעים נמצאים מתחתיו.
אוקיי אז כל מה שאנחנו צריכים לעשות זה לגשת לפונקציה בקוד ולבצע את הפעולה הבאה. ראשית אנחנו צריכים לרוץ על כל התפריטים האלה ולהגדיר שהם לא צ'קט. אז בואו פשוט נעשה לולט for each טול סטריפ מניו אייטם mnu in mnu colors נקודה דרופ דאון אייטמס דרופ דאון אייטמס זה בעצם האוסף הפנימי של התת מניו אייטמס שנמצאים בתוך התפריט הזה אם זה mnu colors אז אלה
כל אלה שנמצאים ישירות בתוכו כל מה שאנחנו רוצים לעשות זה mnu נקודה checked שווה false זה מבטל את כל היתר ולאחר מכן ללכת לאותו אחד שהפעיל את האירוע שט טרו.
בואו נריץ עכשיו, נבחר ברד, נראה שגם הטופס נצבע ברד וגם הוא מסומן. נבחר בגרין, נראה שהרד כבר לא מסומן והגרין מסומן. נבחר בבלו, נראה שהרד והגרין לא מסומנים, רק הבלו וכולי.
כלומר עובד פרפקט זאת גם כן שיטה. הדבר הבא שאנחנו הולכים לראות זה שיש לנו אפשרות להגדיר איזשהו אייקון. נניח שאנחנו רוצים להגדיר איזשהו אייקון או תמונה, בתפריט עצמו אנחנו יכולים לראות שיש לנו אפשרות להגדיר איזושהי תמונה.
אז אנחנו רואים שיש לנו אפשרות לבחור איזושהי תמונה במחשב, בואו ניכנס שוב פעם לאתר Icon Finder ונוריד איזשהו אייקון שמתאים לנו כרגע.
אנחנו נמצאים בעצם ב-open תפריט open, אז מה שנעשה נבצע חיפוש של open. בואו נראה את כל התמונות ונוריד איזושהי תמונה שמאפשרת לעשות אופן, הנה תמונה אסתטית.
ננסה קודם כל לראות אם ICO תופס. לא תמיד אייקון עובד עם התמונות שרואים. נקרא לזה open.ico, נשמור את זה על הדסטופ. נחזור בחזרה מול ה-Tofs, Local Resource, אימפורט, Local Resource הכוונה בתוך המחשב, נעביר אותו ל-All Files, נבחר open.ico, ש-ICO זה אייקון, ונראה שהוא נותן לנו איזושהי הודעת שגיאה.
ICO is not a valid resource type, בסדר? אוקיי, בואו ננסה לחזור לאתר ולהוריד את זה על ידי תמונת PNG. נשמור את זה כ-open.png, נחזור בחזרה, אימפורט, נבחר הפעם את ה-png, אוקיי?
ואנחנו רואים שיש לנו פה אייקון open, ושימו לב שספציפית לגבי תפריטים, אייקונים לא עובדים, רק קבצי תמונות סטנדרטיים כמו BMP, PNG, GIF, JPEG וכו'.
הדבר הבא שאנחנו הולכים לראות זה מכשי קיצור. אנחנו יכולים לבחור תפריט וללכת ולתת איזשהו מכש קיצור שיפעיל את התפריט. אנחנו רואים שיש לנו פה shortcut keys.
כאן אנחנו יכולים לבחור האם המכש קיצור מופעל ביחד עם קונטרול או עם שיפט או עם אלט או עם כל קומבינציה ביניהם. קונטרול שיפט ואז איזשהו מכש.
בואו נניח שאנחנו רוצים לצבוע את הטופס באדום, כאשר לוחצים על Control ובנוסף על R כי אנחנו ב-Red. בואו נחפש פה את R ויש לנו Control R.
כבר אנחנו רואים שזה מוצג כאן, יש לנו אפשרות לשלוט על זה האם זה מוצג כן או לא. Show, Show, cut keys, False, אז אנחנו, היוזר לא רואה את זה בעצם.
בואו נלך לגרין ונגדיר שאנחנו רוצים Control ו-G, נאתר פה את G ויש לנו כאן את Blue ואנחנו אנחנו רוצים שהמקש שיהיה, ניחשתם נכון, קונטרול B. נשמור, נריץ, קונטרול F5, תוכנית רצה.
כל מה שאני עושה זה קונטרול R וזה מתבצע, קונטרול G מתבצע, קונטרול B מתבצע. זאת אומרת שיש ליוזר אפשרות להשתמש עם המקשים והפעולות בתפריט אכן התבצעו.
בואו נחזיר את זה למצב כזה, בצורה כזאת. אם אנחנו במקשי קיצור, אז בואו נראה טריק מאוד מעניין. אנחנו יכולים לבחור כל אחד מהתפריטים בעצם ללכת לטקסט שלו לבחור איזושהי אות מסוימת בוא נניח שאם אנחנו בפייל אז בואו נבחר את האות f ולפני האות הזאת להקליד את התו אמפרסנט כלומר
שיפט 7 במקלדת מה שזה אומר זה לא שאנחנו נראה עכשיו אמפרסנט פייל אלא אם אני נלחץ על אנטר שימו לב שאני לא רואה אמפרסנט לפני ה-f אלא אני רואה משהו אחר, אני רואה underline מתחת ל-F.
בואו נעשה את אותו הדבר על ה-colors, ונלך לפני ה-C, יכלתי ללכת לכל מקום אחר, אם אני הולך לפני ה-R ושם אמפרסנט, אז שימו לב שאני רואה underline קטנצ'יק כזה מתחת ל-R.
בואו נלך ונבצע את זה, אבל לפני ה-C, זה פשוט יותר מתאים, וה-underline קופץ ל-C. מה זה אומר אותו underline? אז זה פשוט מאוד נקרא קי, מכש חם.
אם אנחנו מריצים אנחנו לא רואים by default את אותו underline מתחת לתווים האלה. אבל אם אני לוחץ עכשיו על Alt, פתאום המערכת מראה לי את כל האנדרליינים. לחיצה מראה, לחיצה נוספת מוציאה את זה.
ומה זה אומר? זה אומר שאם עכשיו אני לוחץ על Alt ו-C ביחד אז הוא פותח לי את התפריט עם ה-HotKey הזה. אם אני לוחץ על Alt ו-F אז הוא פותח לי את התפריט של F. ככה המשתמש בעזרת מכשי קיצור יודע איך לפתוח את התפריטים בלי להשתמש בעכבר.
שימו לב שבכל תפריט, בכל תוכנה אתם יכולים לראות את זה. אפילו שאני נמצא בתוך Visual Studio ועכשיו אני לוחץ Alt, אפשר לראות ב-Visual Studio את כל ה-Hot Keys פתאום מופיעים כאן.
אתם רואים לדוגמה את ה-Tools, אז יש לי פה אפשרות לעשות Alt ו-T ונפתח לי ה-Tools. גם כאן אם אני לוחץ על Alt, ואם היה לי פה מקש אחר, הנה לדוגמה אני רואה שב-wcf service configuration editor ה-w מתחתיו יש underline.
אז אם עכשיו אני לוחץ על w אז המערכת פותחת לי בעצם את הכלי הזה שנקרא wcf configuration editor. ועשיתי את זה בלי לגעת בעכבר אלא בגלל שאני מכיר את ה-hot keys של תפריטים.
אז מה שראינו כרגע זה בעצם תפריטים שמאפשר לנו להגדיר תפריט אחד על גבי הטופס. אבל זה לא התפריט היחידי שיש לנו. יש לנו אפשרות להשתמש בתפריט שנקרא context menu strip.
אם אני שם אותו עכשיו, אני רואה שיש לי פה את ה-context menu strip. אני לא יכול לעצב או לכתוב קוד בתפריט עצמו למעלה, אלא רק בתת-תפריטים שלו.
בואו סתם נרשום פה. יש לנו כאן B ועוד Enter, פותח לנו את זה C. ובואו נניח שבתוך B נעשה תת-תפריט של 1, 1, 2, 2, 3, 3. מה זה בדיוק הדבר הזה?
נלך ל-3, 3, דאבל קליק, נציג מסג'בוקס רק בשביל לבדוק מה זה עושה. קונטקסט מניו סטריפ זה פשוט מאוד תפריט תלוי הקשר, ככה זה נקרא בעברית. אם יש לנו עכשיו רכיב ויזואלי, בואו נניח לחצן, ואני רוצה לשייך תת-תפריט ללחצן הספציפית.
קונטקסט מניו סטריפ זה בדיוק התת-תפריט שאני יכול לשייך, והוא תמיד נפתח בלחיצה של מקש ימני. אם אני עכשיו מריץ את הטופס ואני לוחץ מקש ימני על הטופס או על גבי הלחצן, כמובן ששום דבר לא יקרה.
שימו לב, אני לוחץ מקש ימני, לא קורה כלום, לוחץ מקש ימני, לא קורה כלום. אם אני בדיזיינר בוחר את הלחצן ואז אני הולך