
currentWidth.BackColor = Blue, והשאר מקבלים רקע ריק (Color.Empty), כדי שהצבע של הקונטרול יבוא ממערכת ההפעלה ולא יישבר אם המשתמש משנה את הצבעים של Windows.Color ל-Brush נעשית בעזרת Brushes.White או Brushes.Black לפי המצב. FillRectangle מקבל Brush ולא Color.Invalidate לכל ארבעת הפאנלים, כך שהסימון מתעדכן בכולם בבת אחת.Color.Empty ו-Color.Blue הם מאפיינים של הרקע, אבל ל-FillRectangle אין מאפיין רקע. הרקע הוא תכונה נפרדת של הפאנל.Paint של פאנל מקבלת sender מסוג object, ולכן יש לעשות (Panel)sender לפני השימוש.הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט מעשי ב-#C - תוכנת צייר - חלק 19» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז בשיעור הקודם הצלחנו להגדיר פה את הפאנלים שלנו והם נראים מצויין אז אמרנו שבשיעור הזה אנחנו ננסה שכשאני מקיש על אחד מהפאנלים אז הוא בעצם נבחר, הוא הופך, הפאנל עצמו הופך לכחול והתוכן הופך ללבן כמו אז, כמו כאן, נכון?
מהתוכן הופך ללבן, הרגע הופך לחלחל אז בואו נעשה את זה אז כשאני מקיש עליו, עד עכשיו דאגוי קליק הביא אותנו לפיינט. אז בואו נראה איזה אירועים יש לנו לפאנל הזה.
פיינט לא כל כך מעניין, אבל מיוס דאון יכול לעניין אותנו. אז במיוס דאון, אז בעצם הולכים להיות לנו ארבעה מיוס דאונים, אבל בואו נתחיל מהראשון.
במיוס דאון, מה אנחנו רוצים לעשות? אנחנו רוצים להחליף את הצבעים. קודם כל, נהפוך את הנוכחי פאנל ריץ 1 נקודה בק קולור נקודה בלו בואו נראה איך זה נראה אני נוגע בו הוא נהיה כחול אבל הוא לא נהיה לבן התוכן לא נהיה לבן אחר כך צריך לצייר את המלבן לבן אז אנחנו רוצים עכשיו לקרוא להנדל
פאנל וויט ולהגיד לו הפאנל הזה פאנל וויטס אחד והגובה לא משתנה צריך לזכור את הגובה מה היה אמרנו אחד וה-G זה גם בעיה אין לנו כרגע את ה-G אבל יותר פשוט זה אולי לקרוא ל-invalidate של הפאנל ולהכין לו מראש פרמטרים כל מה מה שאנחנו בסך הכל רוצים להגיד זה שה-Selected Width פאנל זה הפאנל הזה.
אז נגדיר כאן, נגדיר Private, נגיד Current Width וזה יהיה מסוג פאנל. כי מה שמגדיר עובי זה בעצם פאנל. ואז אוקיי, אז האמת היא שגם הטיפול בצבע רקע בעצם מטופל כבר על ידי ההנדל באירוע גראסי. אז כל מה שנותר זה רק להגיד פאנל ווידס אחד נקודה invalidate.
תצייר את עצמך מחדש, אבל קודם כל להגיד דיר, אולי נשים לו שם איזה אנדרט קול להיראות שהוא פרייבט, הוא שלנו. קארנט ווידס שווה לסנדר.
עכשיו נלך לצייר את פאנל ווידס. אז אם אני בא לצייר את פאנל ווידס, הוא בא לצייר את עצמו, אז הוא אומר פה Handle Panel Width, בסדר.
זה רגע רגיל, אולי את זה נשנה רק, כיוון שראינו שבסוף צריך לעשות קאסטינג, אז כבר יותר קל לי כבר לכתוב את זה ככה. אז אנחנו שולחים את Panel Width ומקבלים אותו כאן.
אז זה בסדר לבחור ב-Black ולא לטפל בבקגראונד שלו אם הוא אחד מהרגילים. אבל אם הוא Selected, אם P הוא Current, אין לנו Current Width, משהו פה בוודאי לא בסדר אז זהו הפונקציה הזו למרות הכל לא יכולה להיות סטטית כי עכשיו היא צריכה להתייחס למשתנה גלובלי למשתנה שמגדיר את מצב המערכת אני לא יכול להעביר
לפיינט פרמטר ובגלל זה אני חייב להשתמש במשתנה גלובלי אז פה אנחנו נבחר את קרן טוויט יפה אם p שווה לקרן טוויט זאת אומרת הפאנל הזה הוא הפאנל הנבחר אז אוקיי צריך להגדיר פה שני color'ים צריך להגדיר color זה יהיה ה-Background ו-Color זה יהיה ה-Foreground וה-Background
אם אנחנו ה-Selected אז זה יהיה color ה-Background יהיה Empty יהיה בלי נכון שלא בחרנו אז זה סתם הפרפר אבל אי אפשר להגיד לו הפרפר כי אם המשתמש יחליט להגדיר מחדש ב-Windows שלו שהצבע הפרפר שבעצם זה צבע הקונטרול הוא ירקרק אז אנחנו נצטרך להיות ירקרקים אחרת הכל צבעים ישתבשו אז צריכים להגיד לו empty בלי צבע
הצבע של הקונטרול למעשה והפור גלאונד הצבע של הפור גלאונד הופך להיות y ואם אנחנו ואם אנחנו לא ניקח את הדבר הזה ונשכפל אותו ונוסיף פה l אם אם אנחנו לא, אז ה-Background, סליחה, אז ה-Background פה הוא Blue.
כאן ה-Background הוא Empty, וה-Foreground הוא Black. יפה. וכאן כשמגיע הזמן לצייר, אז אנחנו נגדיר שה-Fill Color הוא לא Brushes Black, אלא הוא ה-Foreground.
ומה ה-Background? אז האמת היא ש-Background זה לא צבע, ה-Background זה תכונה. B נקודה ב-Color שווה ל-Blue ואילו כאן הוא שווה ל-Empty.
בואו נראה איך זה נראה, זה לא נראה כל כך. מה הבעיה? פיל Rectangle לא יכולה לקבל Color, היא צריכה לקבל Brush.
ואנחנו הגדרנו Color בשביל פיל זה ה-Foreground, בוא נגדיר בראש ל-foreground או בראש בי והבראש שווה לבראשז ווייט והבראש כאן שווה לבראשז