Skalierbares Windowsforms

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von SanDiego95.

    Skalierbares Windowsforms

    Moin zusammen,

    ich habe ein kleines Problemchen. Ich würde gerne meine Form skalierbar machen, d.h. wenn sich die Größe des Fensters ändert, dann sollen
    auch sämtliche Steuerelemente sich dementsprechend ändern.
    Ein bisschen googlen hat mich zu Anchor gebracht, wobei da bei mir sich irgendwie nichts ändert. Wenn ich den Anchor auf Top Left Right Bottom setze, dann bleibt bspw.
    die Tabcontrol genauso, wie wenn ich den Anchor auf Top Left setze und es skaliert sich nichts. Für das Hintergrundbild des Forms geht es ja recht einfach, da man
    da nur Backgroundimagelayout auf Stretch setzen muss, aber bei den anderen Steuerelementen passiert dann ganz komisches Zeug.
    Ich habe den BorderStyle vom Form auf None gesetzt und mir durch Panels selber "Schließen", "Maximieren" und "Minimieren" Buttons erstellt.
    Der Schließen Button wird dann um die vergrößerte Fläche rechts einfach komplett gezogen und Maximieren und Minimieren nur in der Höhe verändert.
    Jein, Dock Koppelt ein Steuerelement and die Seiten deiner Form. Wenn du die Panels dynamisch mit der Größe deiner Form in der Größe anpassen willst musst du die Größen und position der Panels selbst berechnen. Der richtige Event sollte Form_Resize sein.

    Edit:
    Du müsstest das linke panel mit Anchor.Left, Anchor.Top und Anchor.Right auf der Form verankern und die anderen Panels danch ausrichten. Sollte funtionieren.

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

    Fakiz schrieb:

    musst du die Größen und position der Panels selbst berechnen
    Blödsinn.
    @SanDiego95 Du musst Deine Form gliedern. Verwende dazu Panels: TableLayoutPanel, SplitContainer, FlowLayoutPanel. Diese passen sich per Dock = Fill oder Anchor = ALL automatisch an die Größe der Form an.
    In die Zellen / Unterpanels dieser 1. Gliederung packst Du die 2. Gliederung, wenn da mehr als nur ein Control rein soll: wieder Panels oder was auch immer.
    So kannst Du organisieren, dass sich die GUI beim Ziehen vernünftig verhält.
    Dies kannst Du direkt im Designer testen.
    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!
    Dass die Elemente richtig skalieren ist Übungssache. Mit Anchor, Dock & Container/Panel wurden dir die Werkzeuge ja bereits an die Hand gegeben.
    Ich würde dir raten mit allem einfach mal rumzuspielen und nach ein paar Versuchen bekommt man eigentlich recht schnell ein Gefühl dafür, was man
    machen muss, um ein bestimmtes Verhalten der skalierbaren Elemente zu erreichen.
    Option strict = on

    If it's stupid and it works it ain't stupid.