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

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


Excel

Recommended Posts

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

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 בסוגריים ככה שכל פעם זה ירוץ על אחד אחר]. למישהו יש פיתרון? תודה :]
קישור לתוכן
שתף באתרים אחרים

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

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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...