DataGridView Färben, Alle Spalten, Fehler

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Derfuhr.

    DataGridView Färben, Alle Spalten, Fehler

    Hey leute,


    Ich habe da ein kleines Problem mit meiner DataGridView, Ich möchte die Farbe der einzielen Zeile ändern,

    Das Problem liegt dabei, das der code nur 1 Spalte Färben, wenn ich "B" ändere dann eben eine andere Spalte.
    Der Code sollte aber alle Spalten ändern.

    Code:

    VB.NET-Quellcode

    1. Private Sub color()
    2. Dim B As Integer = 0
    3. Dim A As Integer = 1
    4. Do
    5. Do
    6. Dim x As String = DataGridView17.Item(A, B).Value
    7. If x < 0 Then
    8. DataGridView17.Item(A, B).Style.BackColor = Drawing.Color.Red
    9. End If
    10. If x > 0 Then
    11. DataGridView17.Item(A, B).Style.BackColor = Drawing.Color.Green
    12. End If
    13. If x = 0 Then
    14. DataGridView17.Item(A, B).Style.BackColor = Drawing.Color.Orange
    15. End If
    16. A += 1
    17. Loop Until A = 16
    18. B += 1
    19. Loop Until B = DataGridView17.Rows.Count
    20. End Sub


    Schon mal DANKE =)
    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_

    MFG

    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_
    Ich rate dir dringends auf Option Strict On zu schalten, das ist ja grauenhaft. So wirst du ständig exceptions kassieren, weil du Äppel mit Bananen verwechselst!!!

    VB.NET-Quellcode

    1. Private Sub color()
    2. For i = 0 To DataGridView1.RowCount - 1
    3. For Each c As DataGridViewCell In DataGridView1.Rows(i).Cells
    4. If c.Value IsNot Nothing Then
    5. Dim x As Integer
    6. If Integer.TryParse(c.Value.ToString, x) Then
    7. If x < 0 Then
    8. c.Style.BackColor = Drawing.Color.Red
    9. End If
    10. If x > 0 Then
    11. c.Style.BackColor = Drawing.Color.Green
    12. End If
    13. If x = 0 Then
    14. c.Style.BackColor = Drawing.Color.Orange
    15. End If
    16. End If
    17. End If
    18. Next
    19. Next
    20. End Sub
    Hey, danke =)

    hab da aber noch eine frage, ich habe jetzt zahlen mit 0,001 usw, die werden leider nicht gefärbt, sondern nur die genauen zahlen , z.B 0,1,2,3,4,5

    danke =)
    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_

    MFG

    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_

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

    Bitte entferne doch das Vollzitat, dadurch werden die Threads nur unnötig lang.

    Dein Problem lässt sich ganz einfach lösen, verwende statt Integer, Single und Single.TryParse.

    VB.NET-Quellcode

    1. Private Sub color()
    2. For i = 0 To DataGridView1.RowCount - 1
    3. For Each c As DataGridViewCell In DataGridView1.Rows(i).Cells
    4. If c.Value IsNot Nothing Then
    5. Dim x As Single
    6. If Single.TryParse(c.Value.ToString, x) Then
    7. If x < 0 Then
    8. c.Style.BackColor = Drawing.Color.Red
    9. End If
    10. If x > 0 Then
    11. c.Style.BackColor = Drawing.Color.Green
    12. End If
    13. If x = 0 Then
    14. c.Style.BackColor = Drawing.Color.Orange
    15. End If
    16. End If
    17. End If
    18. Next
    19. Next
    20. End Sub