Kezdőoldal » Számítástechnika » Programozás » Objektum mozgatása C# Windows...

Objektum mozgatása C# Windows Form Application-ben. Hogyan?

Figyelt kérdés

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!



2017. szept. 23. 15:10
 1/4 anonim ***** válasza:

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);

2017. szept. 23. 15:15
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

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".

2017. szept. 23. 15:23
 3/4 anonim ***** válasza:
100%

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.

2017. szept. 23. 16:08
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

tippre:

pictureBox1.Location += new Point(10,0);

vagy:

pictureBox1.Location = pictureBox1.Location + new Point(10,0);

2017. szept. 23. 18:22
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!