Assegnare colori allo sfondo ed al testo di una riga selezionata di una ListView
Attualmente non è possibile assegnare direttamente - ossia da una proprietà - colori allo sfondo ed al testo di una sola riga selezionata di un oggetto ListView.
Per superare questo ostacolo si può adottare uno stratagemma, basandosi sulla circostanza che l'oggetto ListView è composto anche dall'oggetto GridView. Pertanto, si potrà agire sull'oggetto GridView, figlio della ListView per impostare il colore dello sfondo della riga selezionata (cliccata) della ListView; e si potrà, però, agire sull'item selezionato della ListView (in tal caso l'assegnazione del colore è diretto) per imporre al testo in esso presente il colore prescelto.
Mostriamo un esempio pratico, nel quale verrà colorato di blu lo sfondo e di giallo il testo della riga cliccata di una ListView. Lo sfondo ed il testo della riga precedentemente cliccata torna ai colori predefiniti.
Public Sub Form_Open() With ListView1 .Add("1", "Riga_1") .Add("2", "Riga_2") .Add("3", "Riga_3") .Add("4", "Riga_4") .Add("5", "Riga_5") .Add("6", "Riga_6") .Add("7", "Riga_7") End With End Public Sub ListView1_Select() Dim j As Byte Dim ob As Object ' Assegnamo alla variabile di tipo oggetto il "figlio" (che è una "GridView") della "ListView": ob = ListView1.Children[0] ' Assegnamo i colori di base allo sfondo della "GridView-figlio" e al testo presente nella "ListView": For j = 0 To ob.Rows.Max ob[j, 0].Background = Color.Default ' "[CStr(j + 1)]" rappresenta la chiave distintiva e non il numero di Indice dell'array ! ListView1[CStr(j + 1)].Richtext = "<FONT Color=#212121>" & listView1[j + 1].text Next ' Assegnamo il colore blu allo sfondo della riga cliccata della "GridView-figlio": ob[ob.Row, 0].Background = &0000FF ' Assegnamo il colore giallo al testo presente nella riga cliccata della "ListView": ListView1[CStr(ob.Row + 1)].Richtext = "<FONT Color=#FFFF00><B>" & listView1[ob.Row + 1].text End