Dynamisch erzeugte Spalten im DGV - Überschriften ausrichten

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von DerSmurf.

    Dynamisch erzeugte Spalten im DGV - Überschriften ausrichten

    Huhu
    Ich verzweifel gerade.
    Ich bespeise zur Laufzeit ein DGV mit einer unbekannten Anzahl Spalten. Das klappt alles.
    Allerdings bekomme ich es nicht hin, die Spaltenüberschriften zentriert anzeigen zu lassen.
    Egal ob ich die Spalten im Designer entsprechend einstelle, oder im Code. Die Schriftgröße wird für alle Spaltenheader übernommen, die Ausrichtung aber nur für die erste. Was mache ich falsch?

    VB.NET-Quellcode

    1. 'DGV Spalten formatieren
    2. Dim DGVColumnCount As Integer = DGVEvaluation.ColumnCount
    3. DGVEvaluation.DefaultCellStyle.Font = New Font("Microsoft Sans Serif", 12)
    4. For L = 1 To DGVColumnCount - 2
    5. With DGVEvaluation.Columns(L)
    6. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    7. .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    8. '.Width = 150 'wenn ich die Spaltenbreite manuell einstelle, funktionierts
    9. End With
    10. Next
    11. With DGVEvaluation.Columns(0)
    12. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
    13. .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    14. End With
    15. With DGVEvaluation.Columns(DGVColumnCount - 1)
    16. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    17. .AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    18. End With
    19. 'DGV Header formatieren
    20. DGVEvaluation.RowHeadersVisible = False
    21. With DGVEvaluation.ColumnHeadersDefaultCellStyle
    22. .Alignment = DataGridViewContentAlignment.MiddleCenter
    23. .Font = New Font("Microsoft Sans Serif", 12)
    24. End With

    Edit: Wenn ich die Spaltenbreite manuell vergebe, dann klappts. Mit AutoSizeMode.AllCells klappt es nicht.

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

    Setz mal bitte den ColumnHeadersDefaultCellStyle.Alignment ganz zum Anfang, nicht erst ab Zeile#21
    Noch was: Wenn der Inhalt kleiner ist als der ColumnHeader-Inhalt, sieht es so aus, als ob es nicht zentriert wird. Das liegt aber daran, dass unsichtbar neben der Beschriftung noch ein Sortier-Pfeil ist. Den kannst Du zusammen mit der Sortierfunktion deaktivieren, indem Du für die Column festlegst, dass SortMode auf NotSortable eingestellt ist.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

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