Hallo zusammen,
ich versuche ein Control zu erstellen, das man zur Laufzeit mit der Maus in der Größe verändern kann. Also der klassische Effekt, wie man ihn nicht zuletzt aus dem Designer vom Visual Studio kennt: Anklicken, das Teil bekommt acht Anfasser, an denen kann man es größer und kleiner ziehen.
Im Großen und Ganzen funktioniert das auch. Einfach ausgedrückt: Beim Mousedown merke ich mir die Mausposition, und beim MouseMove errechne ich jedesmal die Differenz zwischen jetziger Position und gemerkter Position und berechne daraus die neue Größe.
Wie gesagt, das funktioniert.
Der Haken ist, dass das Teil beim Vergrößern und Verkleiner flackert ohne Ende. Es liegt vermutlich daran, dass ich bei jedem MouseMove - also bei jedem Pixel Verschiebung - die Größe neu zuweise und das Teil sich ständig neu zeichnet.
Ich könnte SuspendLayout benutzen, aber dann sieht man nicht mehr, wie groß man schon gezogen hat :-(
Hat einer eine Idee, wie man das Problem lösen kann?
Vielen Dank!
ich versuche ein Control zu erstellen, das man zur Laufzeit mit der Maus in der Größe verändern kann. Also der klassische Effekt, wie man ihn nicht zuletzt aus dem Designer vom Visual Studio kennt: Anklicken, das Teil bekommt acht Anfasser, an denen kann man es größer und kleiner ziehen.
Im Großen und Ganzen funktioniert das auch. Einfach ausgedrückt: Beim Mousedown merke ich mir die Mausposition, und beim MouseMove errechne ich jedesmal die Differenz zwischen jetziger Position und gemerkter Position und berechne daraus die neue Größe.
Wie gesagt, das funktioniert.
Der Haken ist, dass das Teil beim Vergrößern und Verkleiner flackert ohne Ende. Es liegt vermutlich daran, dass ich bei jedem MouseMove - also bei jedem Pixel Verschiebung - die Größe neu zuweise und das Teil sich ständig neu zeichnet.
Ich könnte SuspendLayout benutzen, aber dann sieht man nicht mehr, wie groß man schon gezogen hat :-(
Hat einer eine Idee, wie man das Problem lösen kann?
Vielen Dank!
Comment