Panel im MouseMove Event "resizen"

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von MemoAnMichSelbst.

    Panel im MouseMove Event "resizen"

    Hallo alle zusammen,
    ich möchte gerne ein Panel resizen.
    Auf dem Panel liegt eine PictureBox. Wenn man auf die PictureBox die Linke Maustaste gedrückt hält und dann die Maus bewegt soll sich das Panel vergrößern.
    Habe schon ein paar dinge ausprobiert, leider erfolglos.

    Hier mal was ich Probiert habe:
    MouseDown Event (PictureBox):

    VB.NET-Quellcode

    1. isDrag = True
    2. MousePos = Control.MousePosition​


    MouseMove Event (PictureBox):

    VB.NET-Quellcode

    1. ​Dim rec As New Rectangle(0, 0, 16, 13)
    2. If e.Button = Windows.Forms.MouseButtons.Left Then
    3. If rec.Contains(e.Location) Then
    4. If isDrag = True Then
    5. Panel1.Size = New Size(e.X - MousePos.X, Me.Height)
    6. Panel1.Location = New Point(0, 0)
    7. End If
    8. End If
    9. End If


    MouseUp Event (PictureBox):

    VB.NET-Quellcode

    1. isDrag = False


    Kennt jemand eine Lösung?
    Danke im vorraus!
    Conway's Game Of Life Monogame Sample: 80%

    Conway's Game Of Life Monogame Sample
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Leider ist es nicht ganz das was ich möchte.
    Zwar möchte ich mein Panel vergrößern allerdings mit der PictureBox die auf dem Panel liegt.
    Wenn ich also die linke Maustaste auf der PictureBox gedrückt halte und meine Maus bewege soll sich das Panel dem entsprechend vergrößern.

    Trotzdem danke. Werde versuchen mal was am Code zu machen :P
    Conway's Game Of Life Monogame Sample: 80%

    Conway's Game Of Life Monogame Sample
    Also liegt nun NUR die PictureBox auf dem Panel? Dann kannst du auch gleich diese verschieben.
    Ich kann mir gerade nicht wirklich vorstellen was du da gebaut hast.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    TheTrust3343 schrieb:

    allerdings mit der PictureBox die auf dem Panel liegt.
    Gib der PictureBox den CockStyle = Fill (im Designer), da geht sie immer mit dem Size des Panels mit.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    MemoAnMichSelbst schrieb:

    Also liegt nun NUR die PictureBox auf dem Panel? Dann kannst du auch gleich diese verschieben.
    Ich kann mir gerade nicht wirklich vorstellen was du da gebaut hast.


    Ok zum besseren Verständnis habe ich mal Zwei Bilder gemacht:
    Links (der Blaue kasten) ist das Panel. Rechts oben sind 3 Weißes striche. Bei einem Klick vergrößert sich das Panel (siehe Zweites Bild).
    Nun will ich das nicht nur mit einem Klick auf die "3 Striche" also die PictureBox sich das Panel vergrößert sondern auch wenn man die linke Maustaste drauf gedrückt hält und die Maus nach rechts zieht.


    Wenn man dann bei einer bestimmten Position ist soll das Panel sich nicht vergrößern, sondern einfach dort stehen bleiben.



    Als Erklärung was das ganze mal seien soll.
    Es soll ein Seitliches TabControl werden. Für Leute die, die Applikation das erste mal öffnen oder vielleicht auch vergessen haben wofür die Symbole sind (Schwarze PictureBox im Bild), können das TabControl dann erweitern
    wo dann die Label zusehen ist mit der passenden Beschriftung. Mehr ist es eigentlich nicht.

    Mfg.
    Conway's Game Of Life Monogame Sample: 80%

    Conway's Game Of Life Monogame Sample
    Das wäre aber ne ganz andere Problemstellung.
    Dann brauchst du ja nicht nur ein bewegbares Control (was mit dem verlinkten Code problemlos auch mitm Panel welches Labels, Pictureboxen und sonst was enthält geht), sondern du brauchst ne Ordnungsnummer in der du die Controls hin und her bewegen kannst, richtig?

    Edit:
    Ich hab gerade nen anderen Post verwurschtelt.
    Du möchtest nur beim Klick auf ein Icon in deiner Liste dass diese sich vergrößert?
    Musst du dann denn die Position auslesen? Kannst du nicht auf das Klick auf die "Striche" reagieren. Diese müssen ja nen Control sein.

    Quasi so:
    Spoiler anzeigen
    ​Erst so:

    Beim Klick auf den rechten Pfeil:

    Beim erneuten Klick:

    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MemoAnMichSelbst“ ()