Größe der Picturebox zur Laufzeit ändern

TigerCrow

Grünschnabel
Bin zwar nicht Konstantin, aber wie ist die Frage gemeint?
Hab den Quellcode jetzt nicht ausprobiert, aber die PictureBox müsste sich nach links, rechts, oben und nach unten bewegen lassen.

Hallo
Das macht es auch alles ...
Wollte das, wenn ich nach unten oder ober bewege das dann die Picturebox immer um 30px sich verschiebt :) und das bekomme ich irgendwie nicht hin :(

Lieben Gruß
TigerCrow
 

Spyke

Premium-User
Du könntest z.B. ganz blöd durch 30 Teilen und schauen ob ein Rest von 0 übrig bleibt

ungefähr so (ungetestet):
C#:
        private void pictureBox_MouseMove(object sender, MouseEventArgs e)
        {
            if (null != context)
            {
                if (context.IsMouseDownOnBorder)
                {
                    ...
                }
                else
                {
                    int left = MousePosition.X - context.MovedControl.Parent.Left - context.MouseDownPoint.X;
                    int top = MousePosition.Y - context.MovedControl.Parent.Top - context.MouseDownPoint.Y;

                    if((left % 30) == 0) //Prüfung ob durch 30 Teilbar (Rest von 0 bleibt) und nur dann neue Koordinate setzen
                        context.MovedControl.Left = left;
                    if((top % 30) == 0) //Prüfung ob durch 30 Teilbar (Rest von 0 bleibt) und nur dann neue Koordinate setzen
                        context.MovedControl.Top = top;
                    context.MovedControl.Cursor = Cursors.SizeAll;
                }
                context.MovedControl.Refresh();
            }
        }

oder alternativ den Rest immer abziehen (ungetestet)
C#:
        private void pictureBox_MouseMove(object sender, MouseEventArgs e)
        {
            if (null != context)
            {
                if (context.IsMouseDownOnBorder)
                {
                    ...
                }
                else
                {
                    int left = MousePosition.X - context.MovedControl.Parent.Left - context.MouseDownPoint.X;
                    int top = MousePosition.Y - context.MovedControl.Parent.Top - context.MouseDownPoint.Y;

                    context.MovedControl.Left = left - (left % 30); //Rest von der Teilung durch 30ig immer abziehen das wir genau gerade 30iger Sprünge haben
                    context.MovedControl.Top = top - (top % 30); //Rest von der Teilung durch 30ig immer abziehen das wir genau gerade 30iger Sprünge haben
                    context.MovedControl.Cursor = Cursors.SizeAll;
                }
                context.MovedControl.Refresh();
            }
        }
 
Zuletzt bearbeitet:

TigerCrow

Grünschnabel
Habe getestet :)

Version 1 funktioniert leider nicht ... so in etwa hatte ich das auch

Version 2 passt :)

Herzlichen Dank

Lieben Gruß
TigerCrow
 

Neue Beiträge