Assegnare colori allo sfondo ed al testo di una riga selezionata di una ColumnView

Da Gambas-it.org - Wikipedia.
Versione del 7 gen 2016 alle 18:43 di Vuott (Discussione | contributi) (Creata pagina con "Attualmente non è possibile assegnare ''direttamente'' - ossia da una proprietà - colori allo sfondo ed al testo di una sola riga selezionata di un oggetto ''ColumnView''....")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Attualmente non è possibile assegnare direttamente - ossia da una proprietà - colori allo sfondo ed al testo di una sola riga selezionata di un oggetto ColumnView.

Per superare questo ostacolo si può adottare uno stratagemma, basandosi sulla circostanza che l'oggetto ColumnView è composto anche dall'oggetto GridView. Pertanto, si potrà agire sull'oggetto GridView, figlio della ColumnView per impostare il colore dello sfondo della riga selezionata (cliccata) della ColumnView; e si potrà, però, agire sull'item selezionato della ColumnView (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 ColumnView. Lo sfondo ed il testo della riga precedentemente cliccata torna ai colori predefiniti.

Public Sub Form_Open()
 
 With ColumnView1
   .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 ColumnView1_Select()

 Dim j As Byte
 Dim ob As Object

' Assegnamo alla variabile di tipo oggetto il "figlio" (che è una "GridView") della "ColumnView":
  ob = ColumnView1.Children[0]
  
' Assegnamo i colori di base allo sfondo della "GridView-figlio" e al testo presente nella  "ColumnView":
  For j = 0 To ob.Rows.Max
    ob[j, 0].Background = Color.Default
    ColumnView1[j + 1].Richtext = "<FONT Color=#212121>" & ColumnView1[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 "ColumnView":
  ColumnView1[ob.Row + 1].Richtext = "<FONT Color=#FFFF00><B>" & ColumnView1[ob.Row + 1].text
  
End