Differenze tra le versioni di "Assegnare colori allo sfondo ed al testo di una riga selezionata di una ListView"

Da Gambas-it.org - Wikipedia.
Riga 2: Riga 2:
  
 
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.
 
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.
 +
 +
Va <SPAN Style="text-decoration:underline">precisato</span> che per ottenere il predetto risultato sarà <SPAN Style="text-decoration:underline">necessario</span> usare le librerie grafiche '''QT''' !
  
  

Versione delle 07:53, 17 set 2019

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.

Va precisato che per ottenere il predetto risultato sarà necessario usare le librerie grafiche QT !


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