Warum ändert die Variable nicht den Zustand

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    Warum ändert die Variable nicht den Zustand

    Hallo
    Ich "spiele" gerade ein wenig mit den DGV Möglichkeiten rum
    Unter anderem wollte ich die Hintergrundfarbe bei bestimmten Einträgen farblich ändern, das funktioniert
    Dann kam ich auf die Idde setzt doch mal eine Variable. Aber hier wird mir in beiden Fällen immer false im Button angezeigt

    VB.NET-Quellcode

    1. Private Sub Messwert_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles Messwert.CellFormatting
    2. Dim Inhalt = CStr(e.Value)
    3. Dim V1 As Boolean
    4. If Messwert.Columns(e.ColumnIndex).Name.Equals("Station_1") Then
    5. If Not String.IsNullOrEmpty(Inhalt) AndAlso (Inhalt.Contains(CBX_Filter_Station.Text)) Then
    6. e.CellStyle.BackColor = Color.LightGreen
    7. V1 = True
    8. Button1.Text = CType(V1, String)
    9. Else
    10. e.CellStyle.ForeColor = Color.White
    11. V1 = False
    12. Button1.Text = CType(V1, String)
    13. End If
    14. End sub

    Wo ist hier mal wieder mein Denkfehler
    @trebron57 Setze einen Haltepunkt auf Zeile 5 und kläre den Sachverhalt auf:
    Debuggen, Fehler finden und beseitigen
    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!
    Die Frage ist, was der Code genau machen soll. Denn abhängig davon, in welcher Zelle Du Dich befindest, wird der Button beschriftet und die Farbe gesetzt. Aber erst, wenn man die übereinstimmende Zelle auch angewählt hat, Wenn das das Sollverhalten ist, dann funktioniert der Code (bei mir).
    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.
    Hallo
    Der Code soll mir eigentlich Zellenhintergründe in der Spalte Station_1 fäerben wenn die Spalte in der Combobox ausgewählt ist
    in den anderen Spalten wird der Text in weiß geschrieben (unsichtabr) wegen der Übersicht. So werden nur Werte von Staion_1 im DGV sichtbar

    Das mit der Variable ist nur ein Test weil es mich interressiert
    Da der von Dir gewählte EventHandler für CellFormatting nicht anspringt, wenn Du nur den ComboBox-Wert änderst, solltest Du wohl eher den Code (in etwas anderer Form, der eben nicht mit dem EventHandler-spezifischen e arbeitet) ablaufen lassen, wenn Du den ComboBox-Wert änderst.
    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.