Hallo,
ich teste gerade etwas rum und wollte ein Panel mittels einer Trackbar bewegen.
Ich will dass wenn ich den Trackbarregler nach links schiebe, das Panel sich ebenfalls nach links bewegt und das selbe nach rechts.
In dem Code wo ich geschrieben habe, bewegt sich das Panel nach links oder rechts, je nachdem auf welcher Seite ich den Regler benutze. Das heißt, ist er unter 0, nach links. Über 0, nach rechts.
(Habe als Min Wert -255 und Max 255)
Mir ist bewusst wo der Fehler ist, bzw warum das so passiert. Allerdings nicht, wie ich es korrekt hinschreibe 😃
Dein Post hört sich so als ob du schon eine Lösung hast, aber erwartest, das wir dir trotzdem eine Lösung schreiben sollen.
Das wird hier aber keiner machen.
Wenn du ein Problem hast mit deinem Code, dann bitte den Code hier Posten und beschreiben was genau nicht funktioniert.
Gruß
Der aktuelle Code sieht so aus:
[csharp]private void trackBar1_Scroll(object sender, EventArgs e)
{
trackBar1.Enabled = true;
if (trackBar1.Value < 0)
panel1.Location = new Point(panel1.Location.X - 1, panel1.Location.Y);
else if (trackBar1.Value > 0)
panel1.Location = new Point(panel1.Location.X + 1, panel1.Location.Y);
[/csharp]
Mit diesem Code kann man das Panel nach links bewegen, sofern sich der Regler unter 0 befindet. Das heißt egal ob ich ihn nach links oder rechts schiebe - sobald er unter 0 ist, geht das Panel nach links.
Ausgangspunkt soll die Mitte sein.
Man müsste halt dem Regler sagen, dass das Panel bei jeder Regler-Bewegung nach links, das Panel nach links geht. Und sobald man ihn nach rechts schiebt - egal auf welcher Seite er sich von 0 befindet, das Panel nach rechts geht.
Ich müsste halt dem Regler sagen, das bei JEDER linksbewegung das Panel nach links geht und bei jeder rechtsbewegung, nach rechts. Und wie ich das schreiben soll, weiß ich nicht genau 😃
Willst du nicht einfach die X Position direkt übernehmen?
const int OriginX = 100; // Ursprungsposition des Panels
int x = OriginX + trackBar1.Value;
panel1.Location = new Point(x, panel1.Location.Y);