במדריך לתכנות C # זה, אתרכז בבקרות המתקדמות כגון ComboBoxes, Grids ו- ListViews ואראה לך את הדרך שבה סביר שתשתמש בהם. אני לא נוגע בנתונים ומחייב עד הדרכה מאוחרת יותר. נתחיל עם בקרה פשוטה, ComboBox.
בלב הקומבו נמצא אוסף פריטים והדרך הפשוטה ביותר לאכלס זאת היא שחרור משולבת על המסך, בחר מאפיינים (אם אינך יכול לראות את חלונות המאפיינים, לחץ על תצוגה בתפריט העליון ואז על חלון המאפיינים), מצא פריטים ולחץ על אליפסות כפתור. לאחר מכן תוכל להקליד את המיתרים, להרכיב את התוכנית ולמשוך את המשולבת למטה כדי לראות אפשרויות.
עכשיו עצרו את התוכנית והוסיפו כמה מספרים נוספים: ארבע, חמש.. עד עשר. כשאתה מפעיל את זה תראה רק 8 כי זה ערך ברירת המחדל של MaxDropDownItems. אל תהסס להגדיר את זה ל 20 או 3 ואז להפעיל אותו כדי לראות מה הוא עושה.
זה מעצבן שכשזה נפתח כתוב comboBox1 ותוכלו לערוך אותו. זה לא מה שאנחנו רוצים. מצא את המאפיין DropDownStyle ושנה את DropDown ל- DropDownList. (זה משולב!). עכשיו אין טקסט וזה לא ניתן לעריכה. אתה יכול לבחור אחד מהמספרים אבל זה תמיד נפתח ריק. איך בוחרים מספר להתחיל? ובכן זה לא נכס שתוכלו להגדיר בזמן העיצוב אך הוספת קו זה תעשה זאת.
הוסף שורה זו במבנה Form1 (). עליכם להציג את הקוד עבור הטופס (בסייר הפתרונות לחץ לחיצה ימנית על From1.cs ולחץ על הצג קוד. מצא את InitializeComponent (); ולהוסיף את השורה הזו מייד אחרי זה.
אם תגדיר את המאפיין DropDownStyle עבור המשולבת כ- Simple ותפעיל את התוכנית לא תקבל כלום. זה לא יבחר או ילחץ או יגיב. למה? מכיוון שבזמן העיצוב עליכם לתפוס את ידית המתיחה התחתונה ולהפוך את כל השליטה לגובה יותר.
בדוגמה 2 שמתי את השם ל- ComboBox לשילוב, שיניתי את המשולבת DropDownStyle חזרה ל- DropDown כך שניתן יהיה לערוך אותו והוספתי כפתור הוסף שנקרא btnAdd. לחצתי פעמיים על כפתור ההוספה כדי ליצור אירוע btnAdd_Click () מטפל באירועים והוספתי את שורת האירועים הזו.
כעת כשאתה מפעיל את התוכנית, הקלד מספר חדש, נניח Eleven ולחץ על הוסף. מטפל האירועים לוקח את הטקסט שהקלדת (בשילוב. טקסט) ומוסיף אותו לאוסף הפריטים של הקומבו. לחץ על המשולב ועכשיו יש לנו ערך חדש אחד עשר. ככה מוסיפים מחרוזת חדשה לקומבו. הסרת אחת מורכבת מעט יותר מאחר שעליך למצוא את אינדקס המחרוזת שברצונך להסיר ואז להסיר אותה. השיטה RemoveAt המוצגת להלן היא שיטת איסוף לשם כך. אתה רק צריך לציין איזה פריט בפרמטר Removeindex.
יסיר את המחרוזת במיקום RemoveIndex. אם ישנם n פריטים בשילוב, הערכים התקפים הם 0 עד n-1. עבור 10 פריטים, ערכים 0..9.
אם זה לא מוצא את הטקסט הוא מחזיר -1 אחרת הוא יחזיר את האינדקס מבוסס 0 של המחרוזת ברשימת המשולבות. יש גם שיטה עמוסה של FindStringExact המאפשרת לך לציין מאיפה אתה מתחיל את החיפוש, כך שתוכל לדלג על הראשונה וכו 'אם יש לך כפילויות. זה יכול להיות שימושי להסרת כפילויות ברשימה.
לחיצה על btnAddMany_Click () מנקה את הטקסט משילוב ואז מנקה את תוכן אוסף הפריטים המשולבים ואז קוראת משולבת. AddRange (כדי להוסיף את המיתרים ממערך הערכים. לאחר ביצוע פעולה זו, זה מגדיר את ה- SelectedIndex של המשולבת ל -0. זה מראה את האלמנט הראשון בשילוב. אם אתה מבצע תוספות או מחיקה של פריטים ב- ComboBox, עדיף לעקוב אחר פריט שנבחר. הגדרת SelectedIndex ל -1 מסתירה את הפריטים שנבחרו.
כפתור הוסף המון מנקה את הרשימה ומוסיף 10,000 מספרים. הוספתי משולבת. BeginUpdate () וקומבינציה, EndUpdate () מתקשר סביב הלולאה כדי למנוע מהבהוב מ- Windows שמנסה לעדכן את הפקד. במחשב האישי שלי בן שלוש לוקח קצת יותר משנייה להוסיף 100,000 מספרים לשילוב.
זוהי בקרה שימושית להצגת נתונים טבלאים ללא מורכבות של רשת. אתה יכול להציג פריטים כסמלים גדולים או קטנים, כרשימת אייקונים ברשימה אנכית או הכי שימושית כרשימת פריטים ותת-נושאים ברשת וזה מה שאנחנו נעשה כאן.
לאחר השחרת ListView בטופס לחץ על נכס העמודות והוסף 4 עמודות. אלה יהיו TownName, X, Y ופופ. הגדר את הטקסט עבור כל ColumnHeader. אם אינך יכול לראות את הכותרות ב- ListView (לאחר שהוספת את כל 4), הגדר את מאפיין התצוגה של ListView לפרטים. אם אתה צופה בקוד לדוגמה זו, דפדף למקום אליו כתוב קוד מעצב Windows Form והרחיב את האזור שאתה רואה את הקוד שיוצר את ListView. כדאי לראות כיצד המערכת עובדת ותוכלו להעתיק קוד זה ולהשתמש בו בעצמכם.
אתה יכול להגדיר את הרוחב עבור כל טור באופן ידני על ידי העברת הסמן מעל הכותרת וגרירתו. לחלופין, תוכלו לעשות זאת בקוד הנראה לאחר שהרחבתם את אזור מעצבי הטפסים. אתה אמור לראות קוד כזה:
בעמודת האוכלוסייה, שינויים בקוד משתקפים במעצב ולהיפך. שימו לב שגם אם תגדירו את המאפיין נעול כך שהוא משפיע רק על המעצב ובזמן ריצה תוכלו לשנות את גודל העמודות.
ListViews מגיעים גם עם מספר מאפיינים דינמיים. לחץ על (מאפיינים דינמיים) וסמן את הנכס הרצוי. כשאתה מגדיר נכס להיות דינאמי, הוא יוצר קובץ .config XML ומוסיף אותו ל- Solution Explorer.
ביצוע שינויים בזמן העיצוב הוא דבר אחד, אך אנו באמת צריכים לעשות זאת כאשר התוכנית פועלת. תצוגת רשימה מורכבת מ- 0 פריטים ומעלה. לכל פריט (ListViewItem) יש מאפיין טקסט ואוסף SubItems. העמודה הראשונה מציגה את טקסט הפריט, העמודה הבאה מציגה SubItem [0] .text ואז SubItem [1] .text וכן הלאה.
הוספתי כפתור להוסיף שורה ותיבת עריכה לשם העיר. הזן שם כלשהו בתיבה ולחץ על הוסף שורה. זה מוסיף שורה חדשה ל- ListView עם שם העיירה בעמודה הראשונה ושלוש העמודות הבאות (תת-נושאים [0..2]) מאוכלסים במספרים אקראיים (מומרים למיתרים) על ידי הוספת מיתרים אלה ל- אותם.
כעת הגדר את המאפיין ListView Multiselect לבסיס. אנו רוצים לבחור פריט אחד בלבד בכל פעם, אם כי אם ברצונך להסיר יותר בפעם אחת זה דומה למעט שעליך לעבור דרך הפוך. (אם אתה מענין סדר רגיל ומוחק פריטים אז הפריטים הבאים אינם מסונכרנים עם האינדקסים שנבחרו).
תפריט הקליק הימני אינו פועל עדיין מכיוון שאין לנו פריטי תפריט שניתן להציג בו. אז לחץ לחיצה ימנית על PopupMenu (מתחת לטופס) ותראה תפריט הקשר מופיע בראש הטופס בו מופיע עורך התפריט הרגיל. לחץ עליו ובמקום בו כתוב Type כאן, הקלד הסר פריט. חלון המאפיינים יציג MenuItem כך לשנות את השם ל- mniRemove. לחץ לחיצה כפולה על פריט בתפריט זה ועליך לקבל את פונקציית ה- menuItem1_Click של קוד האירועים. הוסף את הקוד הזה כך שייראה ככה.
אם אתה מאבד את הראייה של הסרת הפריט, פשוט לחץ על הפקד PopupMenu בפני עצמו תחת הטופס בטופס מעצב. זה יחזיר אותו לתצוגה.
עם זאת אם אתה מפעיל אותו ולא מוסיף פריט ובוחר אותו, כאשר אתה לוחץ באמצעות לחצן העכבר הימני ומקבל את התפריט ולחץ על הסר פריט, הוא ייתן חריג מכיוון שאין פריט שנבחר. זה תכנות גרוע, אז הנה איך מתקנים את זה. לחץ פעמיים על אירוע הקופץ והוסף שורת קוד זו.
DataGridView הוא גם המרכיב המורכב ביותר והשימושי ביותר הניתן בחינם באמצעות C #. זה עובד עם שני מקורות נתונים (כלומר נתונים ממסד נתונים) ובלי (כלומר נתונים שאתה מוסיף באופן תכנותי). להמשך הדרכה זו אציג להשתמש בו ללא מקורות נתונים, לצורכי תצוגה פשוטים יותר אולי תמצא ListView רגיל יותר מתאים.
אם השתמשת בבקרת DataGrid ישנה יותר, זהו רק אחד מאלה הסטרואידים: זה נותן לך סוגי עמודים מובנים יותר, יכול לעבוד עם נתונים פנימיים כמו גם חיצוניים, התאמה אישית רבה יותר של תצוגה (ואירועים) ונותנת שליטה רבה יותר על טיפול בתאים באמצעות שורות קפוא ו עמודות.
כשאתה מעצב טפסים עם נתוני רשת, נהוג לציין סוגי עמודות שונים. יתכן שיש לך תיבות סימון בעמודה אחת, טקסט קריא או ניתן לעריכה בעמוד אחר, ומספרי קורסים. סוגי עמודות אלה מיושרים בדרך כלל באופן שונה עם מספרים בדרך כלל מיושרים ימינה כך שנקודות העשרון מתיישרות. ברמת העמודה תוכלו לבחור בין כפתור, תיבת סימון, ComboBox, תמונה, TextBox וקישורים. אם אלה לא מספיקים אתה יכול להמציא את הסוגים המותאמים אישית שלך.
הדרך הקלה ביותר להוסיף עמודות היא על ידי עיצוב IDE. כפי שראינו בעבר זה פשוט כותב עבורך קוד וכשביצעת את זה כמה פעמים אתה אולי מעדיף להוסיף את הקוד בעצמך. לאחר שעשית זאת כמה פעמים זה מספק לך תובנות כיצד לעשות זאת באופן תכנותי.
נתחיל על ידי הוספת כמה עמודות, שחרר DataGridView על הטופס ולחץ על החץ הקטן בפינה השמאלית העליונה. ואז לחץ על הוסף עמודה. עשה זאת שלוש פעמים. הוא יופיע בתיבת הדו-שיח הוסף עמודה בה אתה מגדיר את שם העמודה, את הטקסט שיוצג בראש העמודה ומאפשר לך לבחור את סוגו. העמודה הראשונה היא YourName והיא ברירת המחדל של TextBox (dataGridViewTextBoxColumn). הגדר גם את טקסט הכותרת לשם שלך. ערוך את העמודה השנייה גיל והשתמש ב- ComboBox. העמודה השלישית מותרת והיא עמודת CheckBox.
לאחר הוספת כל השלוש, אתה אמור לראות שורה של שלוש עמודות עם משולבת באמצע (גיל) ותיבת סימון בעמודה המותרת. אם תלחץ על DataGridView אז במפקח המאפיינים עליך לאתר עמודות ולחץ על (אוסף). זה קופץ דו-שיח שבו אתה יכול להגדיר מאפיינים לכל עמודה כגון צבעי תא נפרדים, טקסט הסבר הכלים, רוחב, רוחב מינימלי וכו ' אם אתה מורכב ומריץ תבחין שתוכל לשנות רוחב עמודות וזמן ריצה. במפקח המאפיינים של DataGridView הראשי, באפשרותך להגדיר ל- AllowUser לשנות את גודל העמודות לשווא כדי למנוע זאת.
אנו הולכים להוסיף שורות לבקרת DataGridView בקוד ו- ex3.cs בקובץ הדוגמאות יש קוד זה. החל מהוספת תיבת TextEdit, ComboBox וכפתור לטופס עם עליה DataGridView. הגדר את המאפיין DataGridView AllowUserto AddRows לשווא. אני משתמש גם בתוויות וקראתי ה- combobox cbAges, הכפתור btnAddRow ו- TextBox tbName. הוספתי גם כפתור סגור עבור הטופס ולחץ עליו פעמיים כדי ליצור שלד מטפל אירועים btnClose_Click. הוספת המילה סגור () שם הופכת את העבודה הזו.
כברירת מחדל, המאפיין המאפשר כפתור הוספה בשורה מוגדר ככניסה בעת ההתחלה. אנו לא רוצים להוסיף שורות ל- DataGridView אלא אם יש טקסט גם בתיבה Name TextEdit וגם ב- ComboBox. יצרתי את השיטה CheckAddButton ואז יצרתי מטפל באירועי השאר עבור תיבת העריכה שם טקסט על ידי לחיצה כפולה לצד המילה השאר במאפיינים בעת הצגת האירועים. תיבת המאפיינים מציגה זאת בתמונה למעלה. כברירת מחדל, תיבת המאפיינים מציגה מאפיינים, אך ניתן לראות מטפלים באירועים על ידי לחיצה על כפתור הברק.
היית יכול להשתמש במקום זאת באירוע TextChanged, אם כי זה יקרא לחצן CheckAdd () שיטה עבור כל לחיצה על מקש, ולא כאשר מפקחים את השליטה, כלומר כאשר שליטה אחרת משיגה פוקוס. בשילוב הגילאים השתמשתי באירוע TextChanged אך בחרתי במטפל האירועים tbName_Leave במקום לחיצה כפולה על מנת ליצור מטפל אירועים חדש.
לא כל האירועים תואמים מכיוון שאירועים מסוימים מספקים פרמטרים נוספים אך אם אתה יכול לראות מטפל שנוצר בעבר אז כן אתה יכול להשתמש בו. זה בעיקר עניין של העדפה, אתה יכול לקבל מטפל אירועים נפרד לכל בקרה שאתה שימוש או שיתוף מטפלים באירועים (כמו שעשיתי) כאשר יש להם חתימת אירוע משותפת, כלומר הפרמטרים הם אותו.
שמתי את שם רכיב DataGridView ל- dGView לצורך קיצור ולחצתי פעמיים על AddRow כדי ליצור שלד מטפל באירועים. הקוד הזה למטה מוסיף שורה ריקה חדשה, משיג את אינדקס השורות (זה RowCount-1 כפי שזה עתה נוסף ו- RowCount הוא 0 מבוסס) ואז ניגש לשורה זו באמצעות האינדקס שלה ומגדיר את הערכים בתאים בשורה זו עבור העמודות YourName ו- גיל.
כשאתם מעצבים טופס, עליכם לחשוב במונחים של מכולות ובקרות ואילו קבוצות פקדים צריכות להיות ביחד. בכל מקרה בתרבויות המערב אנשים קוראים משמאל למעלה לימין למטה, כך שמקל על הקריאה ככה.
מיכל הוא כל אחד מהבקרים שיכולים להכיל פקדים אחרים. אלה שנמצאים בארגז הכלים כוללים את הפאנל, FlowLayoutpanel, SplitContainer, TabControl ו- TableLayoutPanel. אם אינך יכול לראות את ארגז הכלים, השתמש בתפריט תצוגה ותמצא אותו. מכולות מחזיקות פקדים יחד ואם תזיזו או ישנה את גודל המכולה זה ישפיע על מיקום הפקדים. פשוט העבירו פקדים על המיכל במעצב הטפסים וזה יכיר כי המכולה אחראית כעת.
לוח דומה ל- GroupBox אך GroupBox אינו יכול לגלול אך יכול להציג כיתוב ויש לו גבול כברירת מחדל. לפאנלים יכולות להיות גבולות אך כברירת מחדל לא. אני משתמש ב- GroupBoxes מכיוון שהם נראים נחמדים וזה חשוב מכיוון:
פנלים שימושיים גם לקבוצת מכולות, כך שתוכלו להיות שניים או יותר GroupBoxes בלוח.
הנה עצה לעבודה עם מכולות. שחרר מיכל מפוצל על טופס. לחץ על החלונית השמאלית ואז על הלחצן הימני. כעת נסה להסיר את ה- SplitContainer מהטופס. קשה עד שתלחץ באמצעות לחצן העכבר הימני על אחד הלוחות ואז תלחץ על בחר SplitContainer1. לאחר שהכל ייבחר תוכלו למחוק אותו. דרך נוספת החלה על כל הפקדים והמכולות היא לחץ על מפתח Esc כדי לבחור את ההורה.
מכולות יכולות לקנן זו בזו גם כן. פשוט גררו אחד קטן על גבי אחד גדול יותר ותראו בקצרה קו אנכי דק כדי להראות שאחד נמצא עכשיו בתוך השני. כשגוררים את מיכל ההורה הילד מועבר איתו. דוגמה 5 מציגה זאת. כברירת מחדל, הפאנל בצבע חום בהיר אינו נמצא בתוך המיכל ולכן כאשר לוחצים על כפתור ההעברה GroupBox מועבר אך הפאנל אינו. כעת גרור את הפאנל מעל GroupBox כך שהוא יהיה לגמרי בתוך Groupbox. כשאתה מורכב ומריץ הפעם, לחיצה על לחצן העבר מזיזה את שניהם יחד.
לוח לייט פאנל הוא מיכל מעניין. זהו מבנה טבלה המאורגן כמו רשת דו-מימדית של תאים שכל תא מכיל בקרה אחת בלבד. לא יכול להיות שיש לך יותר מפקד אחד בתא. אתה יכול לציין כיצד הטבלה גדלה כאשר מוסיפים עוד פקדים או אפילו אם היא לא גדלה, נראה שהיא מעוצבת בטבלת HTML מכיוון שתאים יכולים לרחוב עמודות או שורות. אפילו התנהגות העיגון של פקדי ילדים במיכל תלויה בהגדרות שוליים וריפודים. נראה יותר על עוגנים בעמוד הבא.
בדוגמה Ex6.cs, התחלתי עם טבלה בסיסית של שתי עמודות והגדרתי באמצעות תיבת הדו-שיח 'שליטה וסגנונות שורה' (בחר את הפקד ולחץ על הקטנה משולש הצבעה ימני הממוקם בסמוך לפינה השמאלית העליונה כדי לראות רשימת משימות ולחץ על האחרונה) שהעמודה השמאלית היא 40% והעמודה הימנית 60% של רוחב. זה מאפשר לך לציין רוחב עמודות במונחי פיקסל מוחלטים, באחוזים או שאתה יכול פשוט לתת לזה גודל אוטומטי. דרך מהירה יותר להגיע לדיאלוג זה פשוט לחץ על האוסף שליד העמודות בחלון המאפיינים.
הוספתי כפתור AddRow והשארתי את נכס GrowStyle עם ערך AddRows המוגדר כברירת מחדל. כאשר השולחן מתמלא הוא מוסיף שורה נוספת. לחלופין אתה יכול להגדיר את הערכים שלו ל- AddColumns ו- FixedSize כך שהוא לא יוכל לצמוח יותר. ב- Ex6, כאשר אתה לוחץ על כפתור הוספת בקרות, הוא קורא לשיטת AddLabel () שלוש פעמים ו- AddCheckBox () פעם אחת. כל שיטה יוצרת מופע של השליטה ואז מתקשרת ל- tblPanel. בקרות. הוסף () לאחר הוספת השליטה השנייה, הפקדים השלישיים גורמים לטבלה לגדול. התמונה מציגה זאת לאחר לחיצה על כפתור הוספת בקרה פעם אחת.
במקרה שאתה תוהה מאיפה מגיעים ערכי ברירת המחדל בשיטות AddCheckbox () ו- AddLabel () שאני קוראת להם, הפקד היה במקור נוסף ידנית לטבלה במעצב ואז הקוד ליצירתו ולאתחול הועתק מתוכו אזור. תמצא את קוד האתחול בשיחת השיטה InitializeComponent ברגע שתלחץ על + משמאל לאזור למטה:
אתה יכול לבחור מספר פקדים בו זמנית על ידי לחיצה ממושכת על מקש המשמרת כשאתה בוחר את הפקדים השנייה והלאה, אפילו פקדים מסוגים שונים. חלון המאפיינים מציג בדיוק את המאפיינים המשותפים לשניהם, כך שתוכלו להגדיר את כולם לאותם שדות גודל, צבע וטקסט וכו '. אפילו אותם מטפלים באירועים ניתן להקצות למספר פקדים.
בהתאם לשימוש, טפסים מסוימים בדרך כלל ישנו שינוי בגודל של המשתמש. שום דבר לא נראה גרוע יותר מאשר לשנות את גודל הטופס ולראות את הפקדים נשארים באותה מיקום. בכל הפקדים יש עוגנים המאפשרים לך "להצמיד" אותם לארבע הקצוות כך שהבקרה נעה או נמתחת כשזז מחובר. זה מוביל להתנהגות הבאה כאשר טופס נמתח מהקצה הימני:
עבור לחצנים כמו סגור שנמצאים באופן מסורתי בפינה השמאלית התחתונה, התנהגות 3 היא מה שצריך. ListViews ו- DataGridViews הם הטובים ביותר עם 2 אם מספר העמודות מספיק כדי לעלות על הצורה וצריך גלילה). העוגנים העליונים והשמאליים הם ברירת המחדל. חלון המאפיינים כולל עורך קטן וחצי שנראה כמו דגל אנגליה. פשוט לחץ על אחד מהסורגים (שניים אופקיים ושניים אנכיים) כדי להגדיר או לנקות את העוגן המתאים, כמוצג בתמונה למעלה.
מאפיין אחד שלא זוכה לאזכור רב הוא המאפיין Tag ובכל זאת הוא יכול להיות שימושי להפליא. בחלון המאפיינים תוכלו להקצות טקסט אך רק בקוד שלכם תוכלו לקבל כל ערך שיורד מהאובייקט.
השתמשתי בתג כדי להחזיק אובייקט שלם תוך הצגת רק כמה מהמאפיינים שלו ב- ListView. לדוגמה, ייתכן שתרצה רק להציג שם לקוח ומספר ברשימת סיכומי לקוחות. אך לחץ באמצעות לחצן העכבר הימני על הלקוח שנבחר ואז פתח טופס עם כל פרטי הלקוח. זה קל אם אתה בונה את רשימת הלקוחות על ידי קריאת כל פרטי הלקוח בזיכרון והקצאת הפניה לאובייקט מחלקת הלקוחות בתג. לכל הפקדים יש תג.
TabControl הוא דרך נוחה לחסוך שטח טופס באמצעות כרטיסיות מרובות. לכל כרטיסייה יכולה להיות סמל או טקסט ותוכלו לבחור כל כרטיסייה ולהציג את הפקדים שלה. ה- TabControl הוא מיכל אך הוא מכיל רק טבלאות. כל טאב דף הוא גם מכולה שיכולה להוסיף לו פקדים רגילים.
בדוגמה x7.cs, יצרתי לוח שני טבלאות עם הכרטיסייה הראשונה בשם Controls עם שלושה כפתורים ותיבת סימון. דף הכרטיסייה השני מכונה יומנים ומשמש להצגת כל הפעולות שנרשמו כולל לחיצה על כפתור או החלפת תיבת סימון. שיטה שנקראת Log () נקראת כדי לרשום כל לחיצה על כפתור וכו '. זה מוסיף את המחרוזת שסופקה ל- ListBox.
הוספתי שני פריטי תפריטים קופצים באמצעות לחיצה ימנית ל- TabControl בדרך הרגילה. ראשית הוסף טופס ContextMenuStrip והגדר אותו במאפיין ContextStripMenu של TabControl. שתי אפשרויות התפריט הן הוספת דף חדש והסרת עמוד זה. עם זאת הגבלתי את הסרת הדף כך שרק דפי כרטיסיות שהוספו לאחרונה ניתנים להסרה ולא לשני המקוריים.
זה קל, פשוט צור דף כרטיסייה חדש, תן לו כיתוב טקסט לכרטיסייה ואז הוסף אותו לאוסף הכרטיסים של הכרטיסיות TabControl
הסרת עמוד היא רק עניין של להתקשר לטבלאות. RemoveAt (), באמצעות הכרטיסיות. SelectedIndex כדי לקבל את הכרטיסייה שנבחרה כעת.
במדריך זה ראינו כיצד חלק מהפקדים המתוחכמים יותר עובדים וכיצד להשתמש בהם. במדריך הבא אני אמשיך להמשיך עם נושא ה- GUI ולהסתכל על חוט העובדים ברקע ולהראות כיצד להשתמש בו.