Listview Hintergrundfarbe....

mafu

Mitglied
Hallo ich habe ein kleines Programm erstllt das
einfach einen Ping Befehl macht und das ganze in eine Listview schreib.
jetzt die frage. ist es möglich das wenn immer success oder timeout kommt die
zeilen zu färben oder wie so eine Ampel zu gestallten?!
Also wenn success dann grün und wenn timeout dann rot.
Programmiersprache ist vb.net

mfg Roman
 
Hi

Das Property, das du suchst heißt (wer hätte es gedacht ;) ) BackColor. Mit diesem kannst du die Hintergrundfarbe des ListViewItems nach deinen vorstellungen anpassen.
 
Code:
Dim lv As ListViewItem = lvHosts.Items.Add(HostAdr)
                Dim Pr As PingReply = Pg.Send(HostAdr)
                lv.SubItems.Add(Pr.Status.ToString)
                If Pr.Status = IPStatus.Success = False Then
                    lv.SubItems.Add(Pr.RoundtripTime)
                    lv.SubItems.Add("Fehlgeschlagen")

                Else
                    lv.SubItems.Add("0") 
                    lv.SubItems.Add("Erfolgreich")
                End If
                lv.EnsureVisible()

So jetzt die also ich will hier in der IF Abfrage die hintergrundfarbe ändern aber mit dem von MSDN konnte ich ich nichts anfangen.

wenn ich jetzt
Code:
If Pr.Status = IPStatus.Success = False Then
                    lv.SubItems.Add(Pr.RoundtripTime)
                    lv.SubItems.Add("Fehlgeschlagen")
                    lv.BackColor.Green
                Else
so eingebe dnan kommt die Fehlermeldung
"Eigenschaftenzugriff muss der Eigenschaft zugewiesen werden oder deren Wert verwenden."

wie kann ich das jetzt hier einfügen´?

mfg Roman
 
Ist doch ganz klar, du sollst den Wert einer Eigenschaft zuweisen.

Code:
If Pr.Status = IPStatus.Success = False Then
                    lv.SubItems.Add(Pr.RoundtripTime)
                    lv.SubItems.Add("Fehlgeschlagen")
                    lv.BackColor.Green
                Else
ist falsch und sollte lauten

Code:
If Pr.Status = IPStatus.Success = False Then
                    lv.SubItems.Add(Pr.RoundtripTime)
                    lv.SubItems.Add("Fehlgeschlagen")
                    lv.BackColor = Color.Green
                Else

Dir ist aber schon klar, dass diese Einstellung bewirkt, dass die Hintergrundfarbe des ListViews selbst geändert wird und nicht die der Zeile, dann musst du auf das SubItem anwenden.
 
Hallo und wie kann ich das jetzt auf item ebene machen?
da ich ja wenn es z.b. fehlgeschlagen ist das dann die zeile z.b. Rot wird,
wenn erfolgreich dann soll es grün werden.

mfg Roman
 
Hi Mafu!

Dafür musst du folgendes tun:
Code:
If Pr.Status = IPStatus.Success = False Then
                    lv.SubItems.Add(Pr.RoundtripTime)
                    lv.SubItems.Add("Fehlgeschlagen")
                    lv.Items(IndexdesItems).Subitems(IndexdesSubitems).BackColor = Color.Green
                Else

Alternativ für die komplette Zeile einfach nur

Code:
   lv.Items(IndexdesItems).BackColor = Color.Green

Hoffe das hilft dir weiter.
 
Zurück