ListBox Item Color (ungleichmäßig) einstellen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von MA-Maddin.

    ListBox Item Color (ungleichmäßig) einstellen

    Hi,

    da bin ich mal wieder und habe eine Frage/ ein Problem:
    Ich habe eine ListBox in die viele Werte (Zahlen) gelistet werden. Die sind mal positiv, mal negativ. Wie kann ich die positiven grün (Schriftfarbe oder Hintergrund) und die negativen rot anzeigen lassen?
    Ich habe schon ge(google)sucht und hier im Forum diesen Beitrag dazu gefunden:
    [VB 2008] Farbe ändern
    Da hat Tigor so einen netten Code gepostet, mit dem aber jeder 2. Eintrag gelb wird. Ich habe schon versucht diesen Code irgendwie umzubasteln, das hat aber nicht ganz gefuntzt.
    Kann mir jemand die Lösung posten? Oder ist das überhaupt möglich was ich vorhabe?

    Thx!
    Ja, es ist möglich.

    Diese Zeile musst du erweitern / ändern (im Code aus deinem geposteten Link):

    VB.NET-Quellcode

    1. Dim nColor As Color = IIf(e.Index Mod 2 = 0, Color.Yellow, Color.White)

    Und zwar in:

    VB.NET-Quellcode

    1. Dim nColor As Color = IIf(CInt(MyListBox.Items(e.Index).ToString()) >= 0, Color.Green, Color.Red)

    Zur Erklärung:
    IIf wertet die Bedingung in Param1 aus; wenn diese True ergibt, ist der Rückgabewert Param2, sonst Param3.
    e.Index liefert den Index des gerade bearbeiteten Elements der Listbox.
    Mit MyListBox.Items(e.Index) bekommst du das Item selbst - .ToString() liefert den angezeigten Text. CInt sorgt für die nötige Typanpassung.

    EDIT: Code korrigiert.
    Gruß
    hal2000

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „hal2000“ ()