Datagridview wird beim Laden nicht formatiert

  • VB.NET
  • .NET (FX) 4.0

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von MemoAnMichSelbst.

    Datagridview wird beim Laden nicht formatiert

    Moin zusammen,

    folgendes: Problem

    Ich fülle beim Laden und beim aktualisieren einer form ein Datagridview mit einer Datasouce in Form einer Abfrage in der Form:

    Datensatz-ID | Bezeichnung | Status | Feldfarbe | Textfarbe

    Die Spalten 0, 3, 4 werden ausgeblendet

    Nachdem das dgv gefüllt ist, wird jede Zeile anhand der Werte in den Spalten 3 und 4 (Backcolor, Forecolor) formatiert.

    Beim Laden der Form bleiben die Zeilen weiß und die Schrift schwarz, obwohl das durchdebuggen gezeigt hat, das die Farbwerte gelesen und zugewiesen werden.
    Die werde aus der Abfrage stehen korrekt drin.
    Beim Aktivieren der Form (durch wechseln zu einer anderen geöffneten und zurückwechseln) wird das dgv dann richtig durch die gleiche Funktion formatiert.

    refresh oder erneutes aufrufen der Funktion haben nichts gebracht.

    Code:

    Visual Basic-Quellcode

    1. Private Sub FillDGVKK()
    2. FillDgv(Me.dgv_KK, sql_KKinAU(const_WertID)) 'Füllen des DGV mit einer Abfrage
    3. HideColumns(dgv_KK, "0,3,4") ' ausblenden der Spalten
    4. Me.dgv_KK.Refresh()
    5. Dim dgvRow As DataGridViewRow
    6. Dim colText As New Color
    7. Dim colFeld As New Color
    8. For Each dgvRow In dgv_KK.Rows
    9. Try
    10. colText = Color.FromArgb(dgvRow.DataBoundItem(3).ToString) ' korrekte Werte, auch wenn sich die Farben nicht verändern
    11. colFeld = Color.FromArgb(dgvRow.DataBoundItem(4).ToString) ' korrekte Werte, auch wenn sich die Farben nicht verändern
    12. dgvRow.DefaultCellStyle.ForeColor = colText
    13. dgvRow.DefaultCellStyle.BackColor = colFeld
    14. Catch ex As Exception ' Falls keine Farben vorgegeben sind (NULL / leerer String)
    15. End Try
    16. Next
    17. End Sub


    Könnt ihr mir helfen?

    Lg
    Arne

    Verschoben. ~Trade

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

    erste Hilfe: mach den TryCatch weg

    (TryCatch ist ein heißes Eisen)

    zweite Hilfe (noch wichtiger): Option Strict On - Visual Studio - Empfohlene Einstellungen

    Das sind Hilfen, die dir die Fehler überhaupt sichtbar machen, und damit ein Einstieg für dich, zu debuggen, und auch, dir wesentliche Grundlagen zu erarbeiten.
    Erst einmal die Hilfe öffnen von Visual Studio und dir anschauen was die Funktionen die du da benutzt überhaupt machen und was sie benötigen.
    Insbesondere fängt es mit Color.FromArgb an. Was sollst du denn da übergeben? Weißt du das überhaupt?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    im ersten Durchlauf werden wohl ungeeignete Daten im Dgv drinne sein.
    probierma:

    VB.NET-Quellcode

    1. Private Sub FillDGVKK()
    2. FillDgv(Me.dgv_KK, sql_KKinAU(const_WertID)) 'Füllen des DGV mit einer Abfrage
    3. HideColumns(dgv_KK, "0,3,4") ' ausblenden der Spalten
    4. For Each dgvRow As DataGridViewRow In dgv_KK.Rows
    5. Dim drv = DirectCast(dgvRow.DataBoundItem, DataRowView)
    6. dgvRow.DefaultCellStyle.ForeColor = Color.FromArgb(CInt(drv(3)))
    7. dgvRow.DefaultCellStyle.BackColor = Color.FromArgb(CInt(drv(4)))
    8. Next
    9. End Sub
    ------
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

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