נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: העלמת לחצנים ב c#

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
אסף
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 March 2010 בשעה 22:25 | IP רשוּם
ציטוט אסף

אני מנסה לכתוב פונקציה שיוצרת מערך  של כפתורים(המשמש כנחש במשחק סנייק).
למשל בהתחלה המערך באורך 5, המשתמש מבצע פעולות והמערך גדל ל 6 כפתורים ומשנה את מיקומו על המסך.
השאלה שלי היא איך להעלים את המערך הקודם (זה עם ה 5 כפתורים). כרגע נוצר לי מערך חדש אבל הקודם נישאר על המסך.
תודה מראש למי שיכול לעזור
 
הקוד :
 

public void startTheSnake(int snakeSize,Point snakeLocation)

{

int space;

RadioButton[] tempRB = new RadioButton[length];

for (int i = 0; i < length; i++)

{

tempRB = new RadioButton();

space = tempRB.Size.Width / 4 * i;

tempRB.AutoSize = true;

if (i != length - 1)

{

tempRB.Location = new Point(snake.Location.X, snake.Location.Y);

}

else

{

tempRB.Location = new Point(snake[i - 1].Location.X, snake[i - 1].Location.Y + tempRB[i - 1].Size.Height);

}

}

snake = new RadioButton[length];

for (int i = 0; i < length; i++)

{

snake = new RadioButton();

snake.AutoSize = true;

snake.Location = new Point(tempRB.Location.X, tempRB.Location.Y);

this.Controls.Add(snake);

}

}

חזרה לתחילת העמוד הצג את כרטיס החבר של אסף חפש הודעות אחרות של אסף בקר בדף הבית של אסף
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 22 March 2010 בשעה 23:28 | IP רשוּם
ציטוט shoshan

אם אתה רוצה להסיר כפתור ספציפי תשתמש ב-this.Controls.Remove

ואתה יכול להסיר את כולם ע"י מעבר על כל המערך...

אבל למה להסיר את הישנים כשאפשר פשוט לשנות את המקום שלהם ?

ולהשתמש ב-List כדי שהגודל של המערך יהיה דינאמי...


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אסף
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 March 2010 בשעה 23:56 | IP רשוּם
ציטוט אסף

תודה רבה על התשובה המהירה! איך לא חשבתי לחפש REMOVE ...
 
חשבתי לעבוד עם רשימות, האמת שזאת באמת הדרך העדיפה לי כי כל הפעולות זה הוספה של כפתורים.
הבעיה היא שאני לא מבין איך אפשר לעשות רשימה, לפי מה שהבנתי אין פוינטרים ב c#.
 
יש מחלקה מוכנה או משהו כזה ?
חזרה לתחילת העמוד הצג את כרטיס החבר של אסף חפש הודעות אחרות של אסף בקר בדף הבית של אסף
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 23 March 2010 בשעה 07:49 | IP רשוּם
ציטוט shoshan

כן, יש גם רשימה מקושרת וגם "רשימה" שהיא בעצם מה שקרוי ב-cpp בשם vector.

בהנחה שאתה משתמש בגרסת csharp של 2.0 ומעלה יש מימוש של מה שנקרא generics
שיותר יעיל עבור רשימות שסוג כל הפריטים בהם זהה ולא דורש Boxing/Unboxing.

לדוגמא:

קוד:
List<RadioButton> lst = new List<RadioButton>()

or

LinkedList<RadioButton>



__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אחד שרוצה לדעת
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 23 March 2010 בשעה 13:01 | IP רשוּם
ציטוט אחד שרוצה לדעת

בC# יש פוינטרים, אמנם לא פוינטרים כמו בC, שם אתה עובד עם כתובות יחסיות אמיתיות ויכול לגשת לזכרון.
בC# אתה עובד עם הפניות (references) , שאתה יוצר משתנה מסוג מחלקה
אתה יוצר משתנה שיכיל רפרנס למופע של המחלקה.
לכן אתה כן יכול לכתוב רשימה מקושרת.

 

חזרה לתחילת העמוד הצג את כרטיס החבר של אחד שרוצה לדעת חפש הודעות אחרות של אחד שרוצה לדעת בקר בדף הבית של אחד שרוצה לדעת
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 23 March 2010 בשעה 13:53 | IP רשוּם
ציטוט shoshan

אחד שרוצה לדעת כתב:

בC# יש פוינטרים, אמנם לא פוינטרים כמו בC, שם אתה עובד עם כתובות יחסיות אמיתיות ויכול לגשת לזכרון.
בC# אתה עובד עם הפניות (references) , שאתה יוצר משתנה מסוג מחלקה
אתה יוצר משתנה שיכיל רפרנס למופע של המחלקה.
לכן אתה כן יכול לכתוב רשימה מקושרת.

יש גם מה שנקרא unsafe code שבאמת ניתן לעבוד עם פוינטרים ב-C# אבל זה לא רלוונטי לשרשור...



__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אסף
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 25 March 2010 בשעה 00:30 | IP רשוּם
ציטוט אסף

קודם כל תודה למי שענה.
 
שושן, אני משנה את המיקום של הכפתורים כשהסנייק זז. אבל כשהוא גדל (אחרי תפיסה של אוכל) אני צריך להגדיר מערך חדש,גדול באחד, ואז להעלים את הקודם. הפתרון שלך (remove) פתר לי את הבעיה.
 
 בהחלט היה עדיף רשימות...
חזרה לתחילת העמוד הצג את כרטיס החבר של אסף חפש הודעות אחרות של אסף בקר בדף הבית של אסף
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 25 March 2010 בשעה 15:11 | IP רשוּם
ציטוט shoshan

חחח...עדיין לא אבוד :)

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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