Form von innen nach außen öffnen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von nikeee13.

    Form von innen nach außen öffnen

    Gute Nacht :),

    Ich suche derzeit einen Code welcher wenn ich auf einen Button klicke
    eine Form von innen nach außen öffnet.

    Normalerweise öffnet sich die Form ja sofort ich hätte gerne das sie etwas langsamer
    von innen nach außen auf geht

    Hat da jemand ne' Idee?

    Viele Grüße
    Vorm Start die Größe auf 0;0 setzen, dann mit einem Timer die Größe ändern bis die Form die richtige Größe hat.
    Ich hasse es wenn einem direkt vorgeworfen wird, ohne dass die Frage überhaupt durchgelesen wurde, dass man nur fertien Code will. Schade dass es sich hier so entwickelt hat :(
    "Windows Vista Home Premium x32" - Wann kapieren endlich alle, dass es kein "x32" gibt? 32 Bit oder x86!
    Oder:

    1. Zur Laufzeit oder per Datei eine Bitmap laden (irgendwie^^)
    2. Die Form auf Borderstyle=None, Size = 0,0
    3. Die Bitmap mittig einzeichnen lassen und Size erhöhen <--- Wiederholen bis gewünschte Größe erreicht
    4. FormBorderstyle zurücksetzen

    KÖNNTE funktionieren... Problem ist nur, dass du irgendwie eine Bitmap der Form auf dem aktuell laufenden Systems bekommst... Kannst schlecht eine Bitmap von einem Start auf Win7 bei Xp verwenden...

    MfG,
    X-Zat / Momo
    Nichts Timer, das machst du mit einer Schleife.

    Also du erstellst die Form ganz normal im Designer und machst dann zB. folgendes:

    VB.NET-Quellcode

    1. Dim x as Integer = Form2.Size.X
    2. Dim y as Integer = Form2.Size.Y
    3. Dim modifier as Double = x / y 'da eine Form normal nicht quadratisch ist, muss man das Verhältnis einbeziehen
    4. Form2.Size = new Size(0, 0)
    5. Form2.Show()
    6. For iX = 0 to x Step modifier
    7. For iY = 0 to y Step modifier
    8. Form2.Size = new Size(iX, iY)
    9. Next
    10. Next


    Wenn du es noch langsamer haben wolltest, könntest du unter Form2.Size = new Size(iX, iY) noch folgendes schreiben:

    VB.NET-Quellcode

    1. System.Threading.Sleep(10) 'Parameter Milisekunden variiert
    2. Application.DoEvents() 'sinnvoll, da Sleep in Schleifen oft falsch reagiert


    Ist gerade frei aus dem Kopf, ob es so perfekt klappt, kann ich nicht sagen.