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

Da Gambas-it.org - Wikipedia.
 
(10 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Impostata la chiave identificatrice dell'<I>Item</i> della ''ListView'', è possibile assegnare ''direttamente'' - ossia da una proprietà - colori allo sfondo ed al testo della riga selezionata di un oggetto ''ListView''.
+
In questa pagina viene mostrata una modalità per assegnare colori allo sfondo ed al testo della riga (item) selezionata di un oggetto ''ListView'':
 
+
'''Public''' Sub Form_Open()
 
 
Mostriamo un esempio pratico:
 
  '''Public''' Sub Form_Open()
 
 
    
 
    
 
   With ListView1
 
   With ListView1
Riga 20: Riga 17:
 
  '''Public''' Sub ListView1_Select()
 
  '''Public''' Sub ListView1_Select()
 
    
 
    
   Dim i As Integer
+
   Dim s As String
 
    
 
    
  <FONT Color=gray>' ''Assegna i colori predefiniti allo sfondo e al testo di ciascuna riga della "ListView":''</font>
+
  <FONT Color=gray>' ''Assegna i colori predefiniti allo sfondo e al testo di ciascuna riga (item) della "ListView".''
   For i = 0 To ListView1.Keys.Max
+
' ''Ogni riga/item è individuata mediante la sua chiave identificatrice, impostata nella precedente routine nel primo argomento del Metodo ".Add()":''</font>
     ListView1[ListView1.Keys[i]].Background = Color.TextBackground
+
   For Each s In ListView1.Keys
     ListView1[ListView1.Keys[i]].Foreground = Color.TextForeground
+
     ListView1[s].Background = Color.TextBackground
 +
     ListView1[s].Foreground = Color.TextForeground
 
   Next
 
   Next
 
    
 
    
  <FONT Color=gray>' ''Assegna il colore blu allo sfondo e giallo al testo presente nella riga cliccata della "ListView":''</font>
+
  <FONT Color=gray>' ''In quest'altro caso il colore dello sfondo e del testo presente nella corrente riga/item,''
   ListView1[listView1.Key].Background = Color.Blue
+
' ''cliccata della "ListView", è assegnato individuando la corrente riga/item cliccata  con la proprietà ".Current":''</font>
  ListView1[listView1.Key].Foreground = Color.Yellow
+
   With ListView1.Current
 
+
<FONT Color=gray>' ''Assegna il colore blu allo sfondo e giallo al testo presente nella corrente riga/item cliccata della "ListView":''</font>
'''End'''
+
    .Background = Color.Blue
 
+
    .Foreground = Color.Yellow
 
+
<FONT Color=gray>' ''Mostra in console il testo contenuto nella riga/item cliccata:''</font>
===Usare l'Oggetto "Figlio" della ''ListView''===
+
     Print .Text
Una seconda modalità (che qui si riporta per soli fini didattci) tiene conto che l'oggetto ''ListView'' è composto anche dall'oggetto ''GridView'', quale suo "''Children''". Si potrà dunque agire su tale oggetto ''GridView'' per impostare il colore dello sfondo della riga selezionata (cliccata) della ''ListView''. Si agirà, però, 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''' (dunque uno dei seguenti Componenti Gambas: ''gb.gui.qt'' o ''gb.qt4'' oppure ''gb.qt5'') !
 
 
 
 
 
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 With
 
    
 
    
'''End'''
 
 
 
'''Public''' Sub ListView1_Select()
 
 
  Dim j As Byte
 
  Dim ob As Object
 
 
<FONT Color=gray>' ''Assegna alla variabile di tipo oggetto il "figlio" (che è una "GridView") della "ListView":''</font>
 
  ob = ListView1.Children[0]
 
 
 
<FONT Color=gray>' ''Assegna i colori di base allo sfondo della "GridView-figlio" e al testo presente nella  "ListView":''</font>
 
  For j = 0 To ob.Rows.Max
 
    ob[j, 0].Background = Color.Default
 
<FONT Color=gray>' ''"[CStr(j + 1)]" rappresenta la chiave distintiva e non il numero di Indice dell'array !''</font>
 
    ListView1[CStr(j + 1)].Richtext = "&lt;FONT Color=#212121>" & listView1[j + 1].text
 
  Next
 
 
 
<FONT Color=gray>' ''Assegna il colore blu allo sfondo della riga cliccata della "GridView-figlio":''</font>
 
  ob[ob.Row, 0].Background = &0000FF
 
 
 
<FONT Color=gray>' ''Assegna il colore giallo al testo presente nella riga cliccata della "ListView":''</font>
 
  ListView1[CStr(ob.Row + 1)].Richtext = "&lt;FONT Color=#FFFF00>&lt;B>" & listView1[ob.Row + 1].text
 
 
 
 
  '''End'''
 
  '''End'''

Versione attuale delle 15:13, 14 lug 2021

In questa pagina viene mostrata una modalità per assegnare colori allo sfondo ed al testo della riga (item) selezionata di un oggetto ListView:

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 s As String
 
' Assegna i colori predefiniti allo sfondo e al testo di ciascuna riga (item) della "ListView".
' Ogni riga/item è individuata mediante la sua chiave identificatrice, impostata nella precedente routine nel primo argomento del Metodo ".Add()":
 For Each s In ListView1.Keys
   ListView1[s].Background = Color.TextBackground
   ListView1[s].Foreground = Color.TextForeground
 Next
 
' In quest'altro caso il colore dello sfondo e del testo presente nella corrente riga/item,
' cliccata della "ListView", è assegnato individuando la corrente riga/item cliccata  con la proprietà ".Current":
 With ListView1.Current
' Assegna il colore blu allo sfondo e giallo al testo presente nella corrente riga/item cliccata della "ListView":
   .Background = Color.Blue
   .Foreground = Color.Yellow
' Mostra in console il testo contenuto nella riga/item cliccata:
   Print .Text
 End With
 
End