Anzeige

C# - PictureBox mit Beinen?!


Alexander12

Erfahrenes Mitglied
#1
Hi an alle,

Hab' in meinem Programm eine kleine PictureBox, die immer die Position wechselt, wenn Man irgendwo ins Form klickt:

Code:
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
         this.pictureBox.Location = MousePosition;
}
Das funktioniert auch, aber ich find's nicht gut, dass die PictureBox gleich an diesem Ort ist. Kann Man es irgendwie hinkriegen, das die PictureBox sich fließend dorthin bewegt,
also dass sie zuerst hingeht, anstatt gleich hinzuspringen? Danke für eure Antworten!!
Wäre sehr Dankbar für Codefetzen, die mir helfen könnten! ;-)

MfG Alexander12
 

Reverent

Erfahrenes Mitglied
#2
Hallo Alexander12,
benutze doch einen Timer,
und jedes mal wen der Timer_Tick ausgelöst wird, zeichnest Du die PictureBox um X-Pixel verschoben an eine neue Stelle bis, die PictureBox die Endposition ereicht hat.
BisDann
 

Alexander12

Erfahrenes Mitglied
#3
Hallo Reverent!
Kannst du mir da evtl. ein kleines Beispiel machen oder mir sagen, wie ich das mache? :(
Zitat von Reverent:
und jedes mal wen der Timer_Tick ausgelöst wird, zeichnest Du die PictureBox um X-Pixel verschoben an eine neue Stelle bis, die PictureBox die Endposition ereicht hat.
Woher weiß ich welches X-Pixel? Soll von beliebig nach beliebig gehen ... ;)

Mfg Alexander12
 

Reverent

Erfahrenes Mitglied
#4
Hallo Alexander12,
this.pictureBox.Location da hast du deine Anfangsposition über die X und Y Werte und du hast die X und Y Werte deiner Mouse.
PictureBox.Location.X ist z.B. 10
und der X Wert deiner Mouse ist z.B. 200 (e.X),
dann schreibst du in dem Timer_Tick()
z.B.

if(pictureBox.Location.X < e.X)
{
pictureBox.Location.X += 5;
}
esle if (pictureBox.Location.X > e.X)
{
pictureBox.Location.X -= 5;
}

und dann das gleiche noch für die Y Werte

BisDann
 

Alexander12

Erfahrenes Mitglied
#5
Hallo Reverent!

Hab' Mal ein bisschen überlegt und wollte dich fragen, ob es möglich ist, dass Man irgendwo hinklickt und dass das Programm dann eine Linie von den X-Y-Punkten der PictureBox zum zielpunkt, den ich mit der Maus angeklickt habe malt, und dass dan die PictureBox dieser Linie folgt? Gibt's dafür auch irgendwo Beispielcode?

Danke schon Mal für deine Antwort!
 

Reverent

Erfahrenes Mitglied
#6
Hi Alexander12,
du hast doch X,Y Start und X,Y Ziel und damit kannst du doch per GDI+ eine Linie auf der Form malen und wenn du die PictureBox um eine Stelle verschoben hast dann malst du die Linie halt kürzer!
BisDann
 
Anzeige
Anzeige