פורסם 2007 בספטמבר 1518 שנים שלום אני רוצה שעת קליטת מקש מסוים לדוגמא התו Wlable1 לדוגמא יזוז פיקסל אחד למעלה כלומר Y-1ניסיתי בתוכנה lable1.location.Y--;ולא עבד הוא רושם שאי אפשר לשנות את זה כי זה לא משתנהלהלן הקוד אם אתם רוצים לראות בבקשה תעזרו לי string key; key = e.KeyChar.ToString(); label1.Text = key.ToString(); if (key.IndexOf("w") != -1) { label1.Location.y--; }
פורסם 2007 בספטמבר 1518 שנים לא מכיר C#, אבל זה נשמע כאילו .Location.y הוא read only. הייתי מחפש מתודה של setLocation, setY או משהו כזה.ד"א, זה נראה כאילו אתה מנסה להזיז X בעזרת המקשים.אני הייתי עושה משהו קצת שונה- מגדיר מערך של מקשים והכיוון שלהם, משהו כזהvar aMovementKeys = new Array();aMovementKeys["w"] = new Array(0,1);aMovementKeys["d"] = new Array(1,0);aMovementKeys["s"] = new Array(0,-1);aMovementKeys["a"] = new Array(-1,0);];הסינטקס אומנם של JS, אבל מקווה שהרעיון ברור.
פורסם 2007 בספטמבר 1518 שנים היי black-hawk. ב C# באמת אי אפשר לעשות את זה כי המשתנה הוא לא הערך של ה-X או Y באמת אלא כל הנקודה (לפי דעתי ממש מטומטם) לכן הקוד אמור להיות כך (ניסיתי ועובד) private void Form1_KeyPress(object sender, KeyPressEventArgs e) { switch (e.KeyChar) { case 'w': label1.Location = new Point(label1.Location.X, label1.Location.Y - 1); break; case 'a': label1.Location = new Point(label1.Location.X-1, label1.Location.Y); break; case 's': label1.Location = new Point(label1.Location.X, label1.Location.Y + 1); break; case 'd': label1.Location = new Point(label1.Location.X+1, label1.Location.Y); break; default: break; } }
פורסם 2007 בספטמבר 1518 שנים זה בגלל כל העניין של הפרופרטיז. במקום להשתמש בLOCATION, אתה יכול להשתמש בTOP(ולזה לעשות --).
פורסם 2007 בספטמבר 1518 שנים מחבר היי black-hawk. ב C# באמת אי אפשר לעשות את זה כי המשתנה הוא לא הערך של ה-X או Y באמת אלא כל הנקודה (לפי דעתי ממש מטומטם) לכן הקוד אמור להיות כך (ניסיתי ועובד) private void Form1_KeyPress(object sender, KeyPressEventArgs e) { switch (e.KeyChar) { case 'w': label1.Location = new Point(label1.Location.X, label1.Location.Y - 1); break; case 'a': label1.Location = new Point(label1.Location.X-1, label1.Location.Y); break; case 's': label1.Location = new Point(label1.Location.X, label1.Location.Y + 1); break; case 'd': label1.Location = new Point(label1.Location.X+1, label1.Location.Y); break; default: break; } }תודה רבה!! עזרת לי מאוד
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.