Objektum mozgatása C# Windows Form Application-ben. Hogyan?
Heló!
Az lenne a kérdésem, hogy Windows Form Application-ben hogyan tudom beállítani, hogy egy adott objektum (pl.: egy kép) egy bizonyos gomb lenyomására valamilyen irányban elmozduljon?
Eddig jutottam:
private void Form1_Down(object sender, KeyPressEventArgs e)
{
timer1.Enabled = true;
}
private void timer1_Tick(object sender, KeyPressEventArgs e)
{
int x = pictureBox1.Location.X;
if (e.KeyChar == (char)Keys.D)
{
x += 100;
}
}
Egy képet szeretnék elmozgatni jobbra a D gomb lenyomásával, de egyszerűen sehogy sem sikerül. Megpróbáltam számláló segítségével is (ahogy az fentebb látható), de így sem jött össze.
Kérlek ne haragudjatok, ha túl "könnyű" kérdést tettem fel, még csak kezdő vagyok. :)
A válaszokat előre is nagyon köszönöm!
Az int érték típus, ha lemásolod egy lokális változóba és azt változtatod, azzal nem csinálsz az eredeti értékkel semmit.
A Location propertynek kell új értéket adni.
pictureBox1.Location = new Point(newX, newY);
Köszi! Viszont hogyan kellene helyesen implementálni? Úgy értem, hogy átszerkesztettem a kódom, de még így sem tökéletes:
private void timer1_Tick(object sender, KeyPressEventArgs e)
{
int x = pictureBox1.Location.X;
int y = pictureBox1.Location.Y;
if (e.KeyChar == (char)Keys.D)
{
pictureBox1.Location = new Point(x += 10), y;
}
}
A "new Point(x += 10)," résszel van a gond, a vesszőt pirossal aláhúzza és azt írja ki, hogy "; expected" és "} expected".
Mert amit írtál teljesen értelmetlen, ráadásul én sem ezt írtam.
... = new Point(x + 10, y);
Teljesen fölösleges még GUI-val foglalkoznod, amikor ennyire alap dolgok is ismeretlenek.
tippre:
pictureBox1.Location += new Point(10,0);
vagy:
pictureBox1.Location = pictureBox1.Location + new Point(10,0);
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!