Zur Laufzeit in der Größe änderbares Control

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von shaggy73.

    Zur Laufzeit in der Größe änderbares Control

    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 jede, 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 hab's :)

    Bei meinem ersten Versuch habe ich versucht, ein neues Control aus vorhandenen Controls zu bauen, im Wesentlichen aus Panels. Das dauert zu lange, bis da alles gezeichnet ist.

    Jetzt habe ich das Control mit "der Hand am Arm" programmiert, also alles schön mit der Graphics-Klasse gezeichnet. Jetzt geht's :)