Colorare riga o cella listbox

Ciao a tutti,
ho la necessita di colorare le righe di una listbox in base al contenuto di un valore.

Uso questo codice:

ListBox1.Cell(ListBox1.LastIndex, 0) = "<big style='color:green;'>" + recData.IdxField(11).StringValue +"</big><p style='color:red;'>Second line</p>"

Il problema che questo codice funziona solo nell’evento open della listbox, ma nell’evento open ancora non ho il valore da filtrare.

Supponiamo che dopo avere caricato i dati nella listbox, con un bottone vorrei colorare tutte le celle di blu, come posso dare ?
Se uso il codice sopra, l’html me lo scrive in chiaro.
Grazie

crea una variabile globale :
dim x as integer

crea una funzione dove carichi la listbox e testi la variabile, che richiami dall’evento action del bottone.
(nella funzione in testa cancella le righe, listbox.RemoveRow)

if x = 0 then
ListBox1.Cell(ListBox1.LastIndex, 0) = “” + recData.IdxField(11).StringValue +“

Second line


elseif x= 1 then
ListBox1.Cell(ListBox1.LastIndex, 0) = “” + recData.IdxField(11).StringValue +“

Second line


…etc.

oppure al posto della variabile globale, memorizza il valore nel RowTag oppure nel RowColumn per una gestione più granulare.
leggi la listbox (testando i valori, rowtag o columntag) e carichi una seconda listbox. (rendendo visibile o invisibile una o l’altra)

Le tecniche sono due:
O ricarichi i dati con il contenuto correttamente formattato in base alle condizioni

Oppure, se vuoi solo evidenziare dei dati in base a una o più condizioni:
Quando carichi i dati:
ListBox1.Cell(ListBox1.LastIndex, 0) = “” + recData.IdxField(11).StringValue +“

Second line

Crei uno stile senza nessun parametro impostato ->wbStyEvidenzia

Nell’header dell’app (inspector app -> HTMLHeader) inserisci:

.wbStyEvidenzia .prima {color:green} .wbStyEvidenzia .seconda {color:red}

Ora quando vuoi evidenziare i dati, detta CondizioneSoddisfatta un booleano che indica se la condizione per cui vuoi evidenziare il dato è soddisfatta:
Listbox1.CellStyle(rigaCorrente,0)=if( CondizioneSoddisfatta, wbStyEvidenzia, nil)

In pratica assegni alla cella lo stile e il motore del browser la evidenzia seguendo la regola scritta negli stile.

Più difficile a spiegare che a fare…

Grazie Luciano,
ma la soluzione di Antonio ha più style :slight_smile:
Ora provo e vi aggiorno.