in Datagridview nur bestimmte Header texte automatisch ersetzen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Drachie.

    in Datagridview nur bestimmte Header texte automatisch ersetzen

    Moin,

    ich stehe vor dem Problem das ich in einem datagripview bestimmte Spaltenheader, die ausgegeben werden bei der anzeige umbennen müsste. Leider sind diese header nicht fest an einem platz sondern dynamisch in der View verschiebbar.

    Meine überlegung war dieses mit einer if schleife zu lösen in der die Header texte undersucht werden und dann mit den entsprechenden nahmen versehen werden.

    Das problem dabei ist, das ich so eine If abfrage auf einer Datagridview noch nie gemacht habe und würde mich hier über einigen denkanstöße oder hilfe dazu freuen.
    Es gibt keine If Schleife. Colums können auch per Name, statt Index angesprochen werden.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    hmm... ich lasse die datagridview mit den Spaltennamen wir folgt füllen:

    VB.NET-Quellcode

    1. For Each myDataGridRow As DataGridViewRow In p_OCRDColumnsGridRows
    2. If myDataGridRow.Cells.Item("colAuswahl").Value = True Then
    3. If myDataGridRow.Cells.Item("colCustomName").Value.ToString.Length > 0 Then
    4. checkedColumnsHeader.Add(myDataGridRow.Cells.Item("colCustomName").Value)
    5. Else
    6. checkedColumnsHeader.Add(myDataGridRow.Cells.Item("colColumnName").Value)
    7. End If
    8. checkedColumns.Add(myDataGridRow.Cells.Item("colColumnName").Value)
    9. End If
    10. Next


    die Tabelname in der SQL datenbank ist geknnzeichnet mit TE_U_2210. in das anzeige soll dann TE_U_2210 wie folgt angeizeigt werden: Transit pro Einheit 2019

    Ich habe es schon mit einer if..els schleife innerhalt der For Each versucht. Leider wird der Name nicht ersetzt...
    Deinen Code kann ich nicht nachstellen, weil zuviele Sachen codeintern sind, deren Definitionen uns fehlen. Aber vielleicht reicht es ja, wenn Du zum passenden Zeitpunkt schreibst:

    VB.NET-Quellcode

    1. For Each Column As DataGridViewColumn In DeinemDGV.Columns
    2. If Column.HeaderText = "TE_U_2210" Then Column.HeaderText = "Transit pro Einheit 2019"
    3. Next

    btw: Lass bitte den Begriff If-Schleife weg. Den gibt es in der Programmierwelt nicht zur Beschreibung eines codierbaren Konstruktes, sondern wirft nur ein schlechtes Licht auf denjenigen, der es verwendet.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    ich empfehle dringend mit typisiertem Dataset zu arbeiten.
    Dann kannst du die Spaltenheader (und vieles mehr) im FormDesigner einstellen.
    Code sollte sich auf anderes konzentrieren als aufs Einrichten von Steuerelementen.
    Paar Beispiele findste hier, obwohl sich das Tut nicht wirklich auf die Gestaltungsmöglichkeiten datengebundener DGVs konzentriert: vier Views-Videos
    @ ErfinderDesRades: Das DGV hat Datasets, die allerdings auf 2 Sharedresouce dateien aufgesplittet worden sind.
    @VaporiZed. danke für den hinweis. durch einige Modifikationen hat es dann endlich geklappt.