C# Problem ! picturebox wieder an den Anfang stellen ?

Hallo,

ich bin c# Anfänger und habe ein Problem.Ich will ein image in der picturebox Auto fahren lassen und wenn es am Ende der Form angekommen ist wieder am Anfang auftauchen lassen, jedoch fährt es nur und erscheint dann nicht wieder am Anfang ?Hier der Text:

 private void timer1\_Tick(object sender, EventArgs e)
 {



 for (int i = 1; i 

} 


Vielen Dank lema97

Hallo Lema97,ohne jetzt den Sourcode auszuprobieren würde ich sagen, das es bei der Abfrage

 for (int i = 1; i = Width){
 Auto.Left = 0;
 }
"" grundsätzlich würde ich immer geschweifte Klammern verwenden




"" ist nicht nötig wenn nur eine Anweisung folgt




 
 Auto.Left = Auto.Left + 5; 
}

Viel Spaß beim programmieren.

Gruß schjue

Würde ich auch mal sagen. Wahrscheinlich ist Auto.Left nie genau this.Width, deshalb ist eine Abfrage auf >= immer sicherer.

Gruß
Thomas

Hallo!
Neben den Anmerkungen bzgl. >= vs. == (das nennt sich übrigens „defensives Programmieren“) bin ich mir nicht sicher, ob der Ansatz so überhaupt klappt.
Du lässt in der Schleife bei einem Timer-Ereignis die Position von „Auto“ immer von 0 bis Width laufen.
Je nachdem, was Auto genau ist, wird es aber vermutlich nicht bei jeder Änderung der Position neu gezeichnet.
Du solltest also im Timer jeweils nur einmal die Position verändern.

Gruß,
Martin

Um das zuletzt gesagte ganz genau zu machen:

private void timer1_Tick(object sender, EventArgs e)
{

Auto.Left = Auto.Left + 5;
if (Auto.Left => Width)
Auto.Left = 0;
Auto.Repaint();
}

Falls Auto.Left als Property definiert ist (wie es der Name nahe legt), deren Setter schon ein Repaint-Event auslöst, solltest Du eine lokale Variable verwenden,

private void timer1_Tick(object sender, EventArgs e)
{
int pos = Auto.Left + 5;
if (pos => Width)
pos = 0;
Auto.Left = pos;
}

so dass der Setter genau einmal aufgerufen wird.

Gruß, Lutz