-
IT café
Új hozzászólás Aktív témák
-
bpx
őstag
persze, mert te csak a jobb szélét vizsgálod a formnak, és ott is csak egyszer csökken a Location.X értéke, ezután feltétel újra igaz lesz és megint elkezd jobbra haladni, és emiatt ide-oda fog mozogni
mindkét szélét vizsgálni kellene, és az aktuális irányt számontartani, és eszerint változtatni az X koordinátát
erre bőven jó az is, hogy pl. egy változóban tárolod, hogy pozitív vagy negatív értékkel változtatod a Location.X-et
a Form.Width-be pedig beletartozik pl. a keret szélessége is, ami Win7-en már jó sok pixel, szóval nem valami pontos, és emiatt "ki fog csúszni" a gomb a formból , helyette inkább a Form.ClientRectangle.Width-et ajánlompublic partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
int inc = 7;
private void timer1_Tick(object sender, EventArgs e)
{
button1.Location = new Point(button1.Location.X + inc, button1.Location.Y);
if (button1.Location.X >= this.ClientRectangle.Width - button1.Width) inc *= -1;
if (button1.Location.X <= this.ClientRectangle.X) inc *= -1;
}
}a feltételeket még nyilván lehet finomhangolni, hogy semmiképp ne folyjon ki a formból, de így is sokkal jobb, mint simán Form.Width-et használva
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!