Beim vergrössern der Form die Objekte mit vergrößern

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Aentfs.

    Beim vergrössern der Form die Objekte mit vergrößern

    Hallo Programmierer und die die diesen Thread lesen,
    ich hab ein Problem wenn ich die Form vergrössere (z.B. beim Maximieren oder beim vergrössern und verkleinern der Form) dann vergrößern sich die Objekte nicht mit (alse in größe sowie in der Position) so das dämlich aussieht jetzt wollte ich fragen ob mir jemand helfen kann.
    Hallo Vanitas-Mundi,

    1.danke für die Antwort

    2.habe ich schon gegooglet

    3.die dock funktion dockt das objekt am rand an und ich möchte die frei in der Form haben

    4. die anchor hab ich schon aber da wird das objekt nicht größer, was ich ja auch möchte
    Gibt auch noch autosize ...
    Außerdem muss man meist noch mit extra Panels etc rumspielen und Gruppen bilden etc. Ist ziemlich viel Fummelarbeit, aber im Endeffekt erhält man dann eine Form wo alles "automatisch" angepasst wird. alternativ kann man den ganzen Rotz natürlich auch im Form_Resize Event selber machen.
    Hallo!

    Die Dock-Eigenschaft dockt nicht nur am linken Rand, wenn man sie auf fill setzt wird das Control komplett
    im Parent-Container "maximiert". Wie schon geschrieben muss man ggf. mehrere Panels oder einen
    Splitcontainer benutzen.
    also ich möchte auch das sich das frei im dockument bewegt so das es denn abstand "prozentual" zur größe erhöt das heist wird die for doppelt so groß dann soll auch das objekt doppelt so groß werden und der abstand zum rand auch

    danke für die bisherigen antworten
    Das ist wie Pico schon gesagt hat viel Fummelarbeit.
    Du musst die Größe jedes Element Prozentual zur Form berechnen. So das Button1.Width immer z.B 10% der Form.Width ist. Zusätzlich musst du aber auch noch die Position des Buttons neu berechnen, da dieser sonst von anderen bzw dieser sonst andere Elemente überschneidet....
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Oder einfach per Code ^^

    VB.NET-Quellcode

    1. Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
    2. Textbox1.Location = New Point (Me.Location.X + 5, Me.Location.Y + 5)
    3. Textbox1.Weight = Me.weight / 2
    4. End Sub



    Ist nur ein Beispiel ^^
    Schau dir mal WPF (Windows Presentation Foundation) an, damit erreichst du was du möchtest und das ganz einfach. Musst dich dann hier und da aber etwas um gewöhnen bzw. umdenken, vieles ist unter WPF anders als unter Windows Forms...
    also erm...soviel fummelarbeit finde ich das gar nich?

    wenn man das mal rein mathematisch sieht.
    die größe eines elements steht ja mit der größe der form in einem verhältniss.
    wenn du nun dieses verhältniss nimmst, und bei jedem mal, wenn sich die formgröße ändert, mit verrechnest, gehts eigentlich ganz easy.

    gehen wir davon aus, die breite der form ist 100
    eine textbox darauf ist 15 (die textbox ist bei 0,0 positioniert)

    daraus erkennen wir, das die textboxbreite zur formbreite in einem verhältniss von: 100/15 = 6.66666666666667

    somit ergibt sich daraus:

    textboxbreite = formbreite / 6.666666666667


    rein mathematisch müsste das stimmen oO
    @doci
    Das hab ich ja schon gesagt.
    Aber das muss für jedes Element gemacht werden. Und mit der Größe allein ist es nicht getan, da du die Positon ebenfalls ändern musst.
    Das in einer Schleife durchlaufen, weis ich jetzt nicht ob das dann funktioniert, da möglicherweise nicht alle Elemente vergrößert werden müssen, und da jedes Element mit einem anderen Faktor vergrößert werden muss. Das kommt dann drauf an, was auf der Form platziert wird. Bin im Moment aber auch zu faul um nachzudenken ^^
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    naja, gut, den faktor kann man ja im vorfeld selbst berechnen ^^ ... is so nich unbedingt das problem
    und naja, kommt drauf an, ob die position neu berechnet werden muss ^^

    bei einem browser beispielsweise,, nehmen wir firefox:
    oben links sind 5 buttons...zurück, vor, aktualisieren, abbrechen, startseite, und dann kommt die addressleiste

    die buttons sollen, egal welche größe der firefox hat, immer dort sein, in der selben größe. wenn du den firefox in der größe veränderst, siehst du, das NUR die addressleiste und das google suchfeld verändert werden ;)
    Ich sag ja nicht, dass das nicht geht, ist aber denke ich trotzdem etwas mehr, also nur textboxbreite = formbreite / 6.666666666667 ^^
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    naja, du hast damit nur einen prozentsatz, is dir kla ne ;)
    somit is die textbox immer 6% von der form groß.
    und hey, ich sagte ja auch..rein mathematisch^^ ;)

    wenn er zum beispiel will, das die textbox immer 20pixel vom linken und 20pixel vom rechten rand weg is, is es schon wieder etwas komplizierter
    Jap.
    Meine Meinung ist eh, das man die Größe der Elemente nicht prozentual der Auflösung anpassen sollte.
    Eine Größere Auflösung ist ja schlieslich dazu da, mehr anzuzeigen und nicht um alles größer anzuzeigen.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia