פורסם 2010 ביולי 1715 שנים שלום לכולם,נתקלתי בכמה "בעיות" שאני מחפש להם פתרון הולם יותר מאשר העתקת קוד.שאלה 1כאשר יש לי מספר רב של כפתורים שמבצעים את אותו הדבר רק שכל אחד עושה את הדבר עבור עצמו.למשל כפתור שמשנה את הטקסט של עצמו ברגע שהוא נלחץ.איך אני יכול להשתמש בפונקציה אחת שאני קורה לה עם פרמטרים כלשהם והם ישנו ספציפית את הכפתור.אגדיר את הבעיה כך button1.Content = "text";כאשר אני קורא לפונקציה חיצונית אין ביכלתי לדעת שbutton1 הוא זה שרוצה לשנות, אם אני משתמש בthis מן הסתם הוא חושב שזה widows ולא הכפתור עצמו, איך אני יכול לעשות שהוא ידע איזה כפתור דורש את השינוי.שאלה 2נניח שוב שאני משתמש בכפתורים (זה יכול להיות כל דבר אחר לצורך העניין)איך אני עובר על מספר ספציפי מתוכם ומשנה הגדרה מסויימת, למשלbutton1.Content = "text";button2.Content = "text";button3.Content = "text";במקום לשנות אחד אחד לעשות לולאה (for , foreach וכו') או משהו בסגנון אשר יבחר יעבור אחד אחד וישנה הגדרה מסויימת, האם ניתן לעשות זאת, במידה וכן, איך?שאלה 3איך ניתן להשתמש בGRID כך שיהיה ניתן לראות את הקווי רשת , אני מצליח רק להראות אותם בתור קו מקווקו ואיני מצליח לשנות הגדרה זאת.שאלה 4חסר לי DATAGRID חיפשתי בכל מקום אפשרי והוא לא נמצא, למישהו יש מושג למה?שאלה 5כמו בשאלה 1 אך קצת שונה , למשל אני רוצה שEVENT מסויים יהיה בכל הכפתורים איך ניתן לעשות זאת בלי לעבור על כל הכפתורים ולהגדיר להם EVENT?תודה מראש,גלנ.ב.סביבת עבודה VS2008
פורסם 2010 ביולי 1715 שנים שאלה 1:כשלוחצים על הכפתור (או לא משנה מתי), פשוט תקרא לפונקציה הזאת עם הפרמטרים המתאימים (תעביר לה את הכפתור ואת הטקסט).כמובן שקצת מיותר לעשות פונקציה שהיא רק שורה אחת, אבל אני משער שאתה רוצה את זה בשביל משהו קצת יותר מסובך (או שלא...)public void SetText(Button btn, String text){ btn.Text = text;}שאלה 2:תחזיק את כל הכפתורים ברשימה מסויימת, רשימה מסוג:List<Button>זה נוח מאוד לדעתי, ואז פשוט תעשה:foreach (Button btn in lstButtons){ btn.Text = "text";}כמובן ש-lstButtons זאת הרשימה שמחזיקה את כל הכפתורים שלך במקרה הזהבנוגע לשאלות 3-4, אין לי ממש ניסיון עם אף אחד מהם ואין לי כרגע ויז'ואל סטודיו מותקןבנוגע לשאלה 5,תעשה כמו בשאלה מספר 2 (כלומר תעבור באמצעות לולאה על כולם) ותעשה שכולם יירשמו לאירוע מסויים,משהו בסגנון הזה (אני לא בדיוק זוכר את הסינטקס, אבל אותו רעיון):foreach (Button btn in lstButtons){ btn.OnClick += ButtonClicked;}כאשר ButtonClicked זאת המתודה שאתה רוצה שתיקרא כל פעם שלוחצים על הכפתורים.
פורסם 2010 ביולי 2215 שנים אתה יכול ליצור מחלקת כפתור חדשה שתירש ממחלקת הכפתור הסטנדרטית של C#, ותממש את הלוגיקה שרצית.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.