Alle Controls an die jeweilige Bildschirmauflösung anpassen?

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Alle Controls an die jeweilige Bildschirmauflösung anpassen?

    Moin

    Ich arbeite an einem 64bit Win7 PC mit der Bildschirm Auflösung 1280x960.
    An diesem PC hab ich mein Programm erstellt.

    Und als ich mein Program am NoteBook benutzen wollte mit der Auflösung von 1024x768,
    Sind die ganzen Controls verschoben, da ja mein Notebook nicht die gleiche Auflösung wie mein
    PC hat.

    Ich wäre sehr dankbar an jeden der mir weiter helfen könnte.

    Ich hab leider keine Ahnung mit Anchor und weiß nicht mal ob das die Lösung ist da ich es paar mal gelesen hatte.
    Mit Dock komm ich gar nicht weiter weil man die Formen nicht an die festgestellte Position docken kann und nur entweder
    Links oder recht am Rand,oben oder unten einstellen kann wo dann das ganze Control VERZERRT wird und die Größe verändert wird und über den ganzen Rand verläuft was ich nicht bei einem kleinen Button brauche.

    Wenn jemand bessere/andere Lösungen kennt bitte ich um Hilfe, Tausend Dank schonmal :)
    PS: Kein VollBildmodus bzw. Maximized Form plz.

    ~blaze~ schrieb:

    Hi
    schau dir mal die ganzen Layout-Controls an, insbesondere FlowLayoutPanel, TableLayoutPanel. Die sind unter Verwendung der Dock-Eigenschaft sehr praktisch.

    Gruß
    ~blaze~
    Habe über 300 Controls in meiner Form.
    Hab alles in einem Panel verschoben und es angedockt in Fill.
    Panel funktioniert , die restlichen bzw ALLE CONTROLS sind immernoch verschoben da ja nur der Panel gedockt wurde und ich den rest frei platziert hatte.

    Hilfe pls
    Mfg

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „taylan15“ ()

    Super, da haste das gleiche Layout, wie in der Form, jetzt in einem Panel ;) Schau' dir die Teile echt mal in der Spezifikation an, ich habe jetzt keine große Lust, da einen langen Text hinzuschreiben, da die meisten Sachen eh selbsterklärend sein sollten. Mach' ein neues Projekt auf und probier einfach mal etwas mit den Eigenschaften herum. Überleg', wie du die Controls manuell anordnen würdest, was für Eigenschaften angeboten werden (AutoSize, Columns/Rows, AutoSizeMode) und welches Control was erledigen sollte, dann kannst du eine schöne, dynamische Oberfläche erzeugen.

    Btw: wozu 300 Controls?

    Gruß
    ~blaze~
    viel mehr als 300...
    Ist ein riesen Tool mit sehr vielen Funktionen für ein bestimmtes Forum was über 600 Leute nutzen.
    Musste es erledigen für die mit anderer Auflösung dank dir mein Freund =)

    Danke,mfg


    EDIT: FUNKTIONIERT IMMERNOCH NICHT MIT PANELS. Der Panel ist durch die Dock einstellung perfekt nicht verschoben jedoch ALLE CONTROLS VOM PANEL sind verschoben. Kann mir jemand helfen die Controls an die Bildschirm Auflösung anzupassen pls ?


    Danke!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „taylan15“ ()

    taylan15 schrieb:

    viel mehr als 300...
    Was soll das?
    Was willst / musst Du davon gleichzeitig sehen?
    --------------
    Mach Dir eine Form, pack da einen Button drauf.
    Nun fasst Du die Form mit der Maus unten rechts an und ziehst sie hin und her.
    Ändere nun die Anchor-Eigenschaft des Buttons auf (alle 4).
    Nun fasst Du die Form mit der Maus unten rechts an und ziehst sie hin und her.
    Ändere nun die Dock-Eigenschaft des Buttons auf Fill.
    Nun fasst Du die Form mit der Maus unten rechts an und ziehst sie hin und her.
    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!

    taylan15 schrieb:

    FUNKTIONIERT IMMERNOCH NICHT MIT PANELS.
    ~blaze hatte Dir vollkommen richtig vorgeschlagen es mit einem TableLayoutPanel zu versuchen, nicht mit einem normalen Panel.

    Du kannst vermutlich mit anderen Parametern wie Autosize, Anchor etc das gleiche Ergebnis erzielen, aber mit dem ist es einfacher.

    Edit: WPF ist da noch schöner, da die Darstellung bei unterschiedlicher Auflösung gleich bleibt. Und 300 Controls auf 1 Form sind, hmm ... suboptimal. Mach ein Tabcontrol und gruppiere sie nach Themen.

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

    Hier ein BSP. Beachte die im Debug-Modus automatisch erzeugten ToolTips. Die zeigen einige Einstellungen.
    Evtl. weiß jemand noch eine schönere Lösung für folgendes Workaround, das die Größe der Icon-Box anpassen soll, wenn sich die Höhe ändert:

    VB.NET-Quellcode

    1. Private Sub _fileIcon_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles _fileIcon.SizeChanged
    2. If Created Then
    3. Me.BeginInvoke(New Action(Sub()
    4. If _fileIcon.Width <> _fileIcon.Height Then
    5. _fileIcon.Width = _fileIcon.Height
    6. End If
    7. End Sub))
    8. End If
    9. End Sub


    Ums noch mal in anderen Worten auszudrücken: 300 Controls auf einer Form sind quasi Schwachsinn. Entweder ist's eine falsche Anwendung oder man sollte sich die Frage stellen, wer das Teil bedienen will?

    Gruß
    ~blaze~
    Dateien
    • LayoutExample.zip

      (22,4 kB, 277 mal heruntergeladen, zuletzt: )
    ICh denke, @taylan15: sollte sich erst mal zu den 300 Controls äußern, sonst wird das hier zu viel Annahmologie.
    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!