größe der steuerelemente an größe der form anpassen

  • VB.NET

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

    Du kannst bei Button1.Size die Größe des Buttons anpassen,
    oder Button1.Dock = DockStyle.Fill nehmen, dann bedeckt der Button immer die ganze Form.

    Wie meinst du das mit den Schriftarten?
    Willst du dass die Schriftart eines Controls für dei ganze Form gilt, oder was?
    anchor hilft mir hier nicht weiter, da dieser ja festlegt, wie weit das steuerelement vom form-rand entfehrnt ist. bei der anzahl an steuerelementen die ich verwende, führt das dazu, dass sich alles überlagert...
    gibt es noch eine andere möglichkeit?

    PS: also ich möcht die x und y werte der steuerelemente irgendwie strecken.

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

    *chatnekromantiebuch einpack*

    da ich ein ähnliches Problem habe wie der damalige tread-steller, dachte ich mir, bevor ich einen neuen aufmache, schreib ich hier weiter. kurze info, ich arbeite mit VB 2010 und WPF.
    ich möchte auch, beim vergrößern eines Fensters die Steuerelemente ebenso vergrößern und verkleinern, eben so wie man das Fenster vergößert oder verkleinert.
    dazu dachte ich mir, ich nehme den neuen wert des Fensters, dividiere diesen durch den originalen Wert und mithilfe des Faktors vergrößere / verkleinere ich die Steuerelemente, eventuell auch abschnittsweise verschieden stark. (länge und breite wird einzeln berechnet)

    ich habe nun ein problem, dass mir das Fenster, obwohl ich es durch das _Loaded Event des Fensters auf einen anfangswert setzen lasse, mir auf 1940 px in die breite springt (823 px is der standart wert) sobald ich es im debug modus starte. ich vermute, dass dieses problem mit dem _SizeChanged Event des Fensters zusammenhängt, in dem ich die berechnugn durchführen lasse. Diese Methode wird nach dem Loaded event warum auch immer (nicht von mir) 5 mal aufgerufen, doch überschreibe ich dabei weder die Me.Height noch die Me.Width mit dem von mir geschriebenen Quellcode.

    hier mal ein wenig Code:

    VB.NET-Quellcode

    1. Private Sub MainWindow_SizeChanged(ByVal sender As Object, ByVal e As System.Windows.SizeChangedEventArgs) Handles Me.SizeChanged
    2. hoehe_neu = Me.Height
    3. breite_neu = Me.Width
    4. hoehe_neu = hoehe_neu / hoehe
    5. breite_neu = breite_neu / breite
    6. DataGrid1.Height = DataGrid1.Height * hoehe_neu
    7. DataGrid1.Width = DataGrid1.Width * breite_neu
    8. End Sub

    hmm jetzt beim schreiben fällt mir auf, dass ich wohl nicht nur einen fehler, sondern zwei in meiner denkweise hab. was das Datagrid angeht, soll dieses von der linken seite des Fensters bis zur rechten seite reichen, was es auch, egal wie man am fenster herumzieht macht... doch eigentlich müsste es doch sich von einem Rand des Fensters weiter entfernen, da das Fenster(dessen breite) sich um einen höheren Betrag vermehrt als es das DataGrid es nach der berechnung tun sollte (fenster eig. 823 pixel standart, DataGrid 800, um den rand auszugleichen)

    achja, bevor ichs vergess, im _loaded Event steht noch ein "Me.Width = 823"
    und wer sich fragt wo die Variablendeklarationen sind, die wurden (bisher noch) global deklariert (wenn es denn so genannt wird) und allesamt als double. des weiteren entsteht das Fenster auf der gewünschtwen Größe, sobald ich die Berechnung herausnehme/auskommentiere und dann Starte.

    so um es nochmal zusammen zu fassen:
    Warum öffnet sich meine Fenster auf 1940px breite?
    warum verhält sich das DG anderst als erwartet? (perfekte skalierung ungeachtet meines Faktors, was eigentlich erfreulich ist)
    warum lässt es sich nicht in der höhe skalieren?
    und zu guter letzt, gibt es bessere, einfachere methoden um das zu bewerkstelligen?
    MfG

    Edit by ErfinderDesRades: Bitte diesen verjährten Thread nicht wiederbeleben
    --> closed

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