VB.NET Form skalieren (an Bildschirmauflösung anpassen)

  • VB.NET

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

    VB.NET Form skalieren (an Bildschirmauflösung anpassen)

    Hey !

    Mein aktuelles Problem: Ich habe eine Form mit den Maßen von ca. 1600 x 1200 Pixel. Auf meinem PC, mitdem ich das Programm erstellt habe, funktioniert alles reibungslos und auch alles
    passt genau an den Bildschirm.
    Nehme ich aber einen anderen PC (einen kleineren) und lasse das Programm laufen, ist leider nur die Hälfte drauf... <X
    Wie schaffe ich es also (z.B mit dem Form-Load-Event), die Größe der Form und der Steuerelemente sowie deren Position an den Bildschirm anzupassen?
    Mit Anchor und Dock habe ich es bereits versucht, aber das klappt leider nicht, die Steuerelemnte bleiben einfach da, wo sie zu Beginn auch waren :S
    Habe mir auch hier einige Threads angeschaut, aber dort bin ich leider auch nicht wirklich schlauer geworden .

    Hat dort jemand Erfahrungen oder kann mir helfen ?

    Grüße :)
    tja, ein Patentrezept, wie man ein ungünstiges Layout auch auf kleinere Bildschirme präsentiert, gibts nicht.
    Layout muss man konzipieren, also man überlegt sich, welche Arbeitsflächen müssen flexible Größe haben, welche Funktioalität kann ich auf eine annere Tabpage auslagern, welche Optionen kann ich in einen Optionen-Dialog verfrachten, und solche Sachen.
    Also wenige Sachen präsentieren, nicht mehr, als auf einen mw. 800-Pixel breites Form noch bedienbar ist.
    Menüs sind zB auch sehr gut zum Platz sparen, weil die nehmen keinen Platz weg, und trotzdem kann man sehr viel Funktionalität rein-stopfen (nicht nur Buttons, auch Checkboxen, Label, Text- und Comboboxen)

    jo, und ansonsten kann ich dir nur meine Videos zeigen, wie man flexible Layouts bastelt: Layout in Windows.Forms.
    Dassis gewissermassen der Werkzeugkasten, aber den Plan, was damit zu bauen ist, musst du dir ausdenken.
    Okay, sehr gutes Tutorial! Danke dir!
    Nun bin ich auf die Idee gekommen, dass ich mehrere Forms mit verschiedenen Auflösungen bastle, deren man sich eine in einem Optionen-Menü aussuchen kann.
    Die Forms funktionieren alle gleich, sprich Buttons heißen gleich und haben die selben Funktionen, nur ist der Platz dazwischen anders geregelt.
    Ist es somit möglich, dass ich eine andere Form durch die Standardform ersetze?
    Habe ich z.B meine Standardform namens Form1. Klickt man einen Button wird DAS DESIGN von der anderen Form(Form2) ersetzt, der Code bleibt aber der selbe.
    Gibt es da eine Möglichkeit?
    (Bei Unklarheiten bitte melden! :) )

    Danke im Voraus! :)

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

    Sobald du die Form2 lädst, wird diese auch nur auf ihre eigenen Events etc. hören, nicht auf die von Form1. Lass das mit den verschiedenen Formen am Besten weg. Mit Anchor warst du doch eigentlich schon auf dem richtigen Weg. Ist dieser auch richtig eingestellt und steht nicht auf Top-Left z.B. ?

    Jannis22 schrieb:

    Wie schaffe ich es also (z.B mit dem Form-Load-Event), die Größe der Form und der Steuerelemente sowie deren Position an den Bildschirm anzupassen?

    Im Gegensatz zu VB6 bringt das VisualStudio hervorragende Möglichkeiten mit, die Controls dynamisch auszurichten.
    Ein bisschen Probieren hilft da sehr.
    Teste einige Container, um die Controls reinzupacken und richte Diese dann mit Anchor aus.
    Auch die "Dock"-Eigenschaft ist sehr nützlich!

    Ich habe mal schnell eine Form zusammengeklickt, die Dir einige Möglichkeiten zeigt (anbei der Download).
    Du wolltest auch noch, das Deine Form sich im Load-Event an den Bldschirm anpasst - das ist mit einer Zeile Code erledigt, wenn es denn programmatisch passieren soll: Me.WindowState = FormWindowState.Maximized

    Dateien
    • itsmagic.zip

      (311,22 kB, 370 mal heruntergeladen, zuletzt: )