עבור לתוכן

פקדים - יש אפשרות לתת אותו שם ולהתייחס אליהם כיאלו היו מערך? [C#]

Featured Replies

פורסם

אני זוכר שבעבר כשהשתמשתי בפקדים [במיקרה הזה פקד של כפתור] עשיתי שהשם של כל הכפתורים הוא זהה אך האינדקס שלהם שונה. בצורה זו יכולתי להתייחס לפקדים כיאלו היו מערך. למשל:

this.TheNameOfTheButton[1].BackColor = Color.Tan;
this.TheNameOfTheButton[2].BackColor = Color.Tan;
this.TheNameOfTheButton[3].BackColor = Color.Tan;

אך כעת כשאני בא לעשות זאת איננו מוצא את הדרך. ניסיתי לתת לכפתורים אותו השם אך קיבלתי שגיאה. מישהו יודע את הפיתרון? תודה.

פורסם

כעקרון כל הפקדים אשר נמצאים בתוך הפורם המסויים הם נכללים בתוך מערך של פקדים בתוך אותו הפורם.

המערך נקרא controls.

אז אם אתה רוצה לרוץ על כל הכפתורים בפורם, אתה יכול לרוץ בעזרת לולאה, ואז פשוט לבדוק אם אותו פקד יורש מהמחלקה של כפתור.

עוד דרך פשוטה יותר היא פשוט להכניס את כל הכפתורים למערך שאתה יוצר.

נגיד

arraylist arrBtn = new arraylist()

arrBtn.add(this.button1)

...

פורסם
  • מחבר

ניסיתי להכניס את הכפתורים למערך אך לא הצלחתי..אולי יש לי טעות תחבירית. ובקשר לשיטה הראשונה לי הבנתי לגמריי איך לעשות זאת. אודה לך אם תפרט. תודה :]

פורסם

אתה לא יכול לתת את אותו שם של פקד

אבל מה שאתה כן יכול זה ליצור ARRAYLIST

אובייקט זה הוא אוסף שיכול להכיל בתוכו כל מה שתרצה גם כפתורים לכן.

בקוד זה מה שתרשום.

Using System.Collections;

ArrayList buttons = new arraylist();
buttons.add(your first button);
buttons.add(your 2nd button);
buttons.add(your 3rd button);
buttons.add(your 4th button);

foreach(button b in buttons)
{
b.BackColor = Color.Tan
}

אם יש לך עוד שאלות תרגיש חופשי

פורסם
  • מחבר

--טעות של אותיות קטנות וגדולות :] הסתדרתי תודה --

קיבלתי שגיאה על הarraylist השני בשורה:

ArrayList GameButtons = new arraylist();

Error 1 The type or namespace name 'arraylist' could not be found (are you missing a using directive or an assembly reference?)

ועל add בשורה:

 GameButtons.add(this.button1);

Error 2 'System.Collections.ArrayList' does not contain a definition for 'add'

עזרה :][br]פורסם בתאריך: 29.12.2006 בשעה 20:23:31


אוקיי יש לי בעיה. בעיקרון מה שאני רוצה לעשות זה לעבור על כל הכפתורים שיש לי[9] ולבדוק אחד אחד אם הם Enabled ואלו שלא להוסיף את המספר שלהם למערך [או לצרוך העניין את המספר המקבל שלהם שיש בשלושה מערכים אחרים - כן זה איקס עיגול]. חשבתי שצורה זו תפתור לי את הבעיה אך אינני יכול להריץ לולאת For כמו שאני מריץ על מערך [עם i בסוגריים ככה שכל פעם זה ירוץ על אחד אחר]. למישהו יש פיתרון? תודה :]
פורסם

תבדוק אם יש מתודה שמחזירה לך ITERATOR(אני לא מכיר כל כך את השפה..). יש בC# לולאת FOR EACH? אולי היא תוכל לעזור לך.

פורסם
  • מחבר

היסתדרתי .. תודה רבה לכולם :]

לא הבנתי ש FOR EACH זה לולאה, לא הכרתי אותה בכלל. חשבתי שזה פשוט מפעיל את הפקודה על כל הפקדים כשבפועל זה בעצם רץ עליהם אחד אחד. ככה שאני בסך הכל עושה IF בתוך הFOR EACH שבודק אם הוא Enabled ואלו שלא עושה מה שעושה.

באמת תודה :] :-* :-* :-*

פורסם

n/a

פורסם

אין בעד מה....בכיף

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים