Abfrageproblem

  • VB.NET
  • .NET (FX) 4.0

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Abfrageproblem

    Mit folgendem Code färbe ich Zellen in meinem DGV ein (vorhandenes Programm, nicht von mir)

    VB.NET-Quellcode

    1. Private Sub DGV_Mess_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DGV_Mess.CellFormatting
    2. Dim Inhalt = CType(e.Value, String)
    3. Dim S1 As String = (Combo_waszeigen.Text)
    4. If (Inhalt = S1) Then
    5. ' If (Inhalt.Contains(Combo_waszeigen.Text)) Then
    6. e.CellStyle.BackColor = Color.LightGreen
    7. Else
    8. e.CellStyle.BackColor = Color.White
    9. End If
    10. End Sub

    Funktioniert auch wenn der Text aus der Combobox identisch mit dem Zellentext ist
    In den Zellen steht:
    AF 1234
    AASDFG 444444444
    u.s.w.
    immer verschiedene max. 10 Buchstaben und 15 Ziffern
    Jetzt würde ich gerne fragen: enthält S1die Buchstaben. Mache ich über eine Combobox wo dannz.b. AF,AASDFG u.s.w. steht

    Wenn ich jetzt mit der auskommentierten Zeile arbeite bekomme ich folgende Meldung:

    "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

    was mache ich da nicht richtig und wie bekomme ich es zum laufen ?
    Da der DGVCellValue auch Nothing sein kann (leere Zelle), wird Inhalt auch zu Nothing. Und auf Nothing kannst Du kein .Contains anwenden. Schreib also:

    VB.NET-Quellcode

    1. If Not String.IsNullOrEmpty(Inhalt) AndAlso Inhalt = S1 Then


    btw: Dim Inhalt = CType(e.Value, String) -> Dim Inhalt = e.Value.ToString
    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.
    @VaporiZed Nö.

    @trebron57 Machst Du einfach

    VB.NET-Quellcode

    1. Dim Inhalt = CType(e.Value, String) & ""
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!