Fenstergröße an Inhalt anpassen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von lomtas.

    Fenstergröße an Inhalt anpassen

    Ich möchte gerne beim Klick auf ein Element einen Dialog öffnen, in dem eine Datagridview die benötigten Informationen tabellarisch darstellt. Die Größe des Fensters soll dynamisch an das DataGridView angepasst werden. Die Spalten des DataGridViews sind auf AutoWidth. Das DataGridView ist als einziges Element in das Fenster gedockt.

    Lösungsansätze meinerseits:
    1) Form auf AutoSize setzen: Funktioniert nicht, wird einfach nur auf Minimalgröße verkleinert.
    2) Breite von DataGridView ermitteln und das Fenster dementsprechend in der Breite anpassen. Funktioniert nicht, da das DataGridView an die Form angedockt ist und ich deswegen immer die Größe der Form bekomme als Größe des DataGridView.
    3) Spalten und Zeilen einzeln durchgehen und Breite und Höhe dadurch errechnen. Funktioniert nicht, da dann als Breite der Standardwert genommen wird (100px) und die durch den Inhalt bestimmte automatische Breite.

    Langsam gehen mir die Ideen aus und ich wende mich an euch. Wie bekomme ich das Fenster genau so groß, dass es lediglich den Inhalt der DataGridView anzeigt - nicht mehr und nicht weniger?
    Hallo Lomtas,

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Dim r As New Random
    4. Me.Button1.Size = New Size(r.Next(200, 500), r.Next(200, 500))
    5. Me.Button1.Location = New Point(0, 0)
    6. Me.ClientSize = Me.Button1.Size
    7. End Sub
    8. End Class

    Die Form hat immer die gleiche Größe wie der Button.

    Ist das dein Problem ?

    Gruss

    mikeb69
    Vielen Dank für eure Lösungsvorschläge. Leider führen Sie nicht zum Erfolg.

    1) DataGridView verwendet bei Dock = none seine Größe nicht automatisch, oder habe ich da die Eisntellung nicht für gefunden?
    2) Natürlich würde ich gerne die Größe verändern und das bekomme ich auch hin. Die Frage ist nur, woher bekomme ich die dynamische Größe des DataGridView?
    3) Auch das Beispiel mit dem Button setzt voraus, dass die Größe bekannt ist. Ist sie aber leider beim DataGridView nicht, bzw. ich weiß nciht wie.

    Hat jemand ne Idee wie ich die Größe rausbekomme?
    mein fehler war, dass ich die Größe an der falschen Stelle festlegen wollte. Tut mir leid, dass ich euch damit belästigt habe. Es funktioniert wie ich wollte, nur halt nich wo ich gedacht hatte...

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