Gestire testo, colori e immagini nelle celle della GridView con l'Evento Data()

Da Gambas-it.org - Wikipedia.

Gestione del testo

Per ottenere con l'Evento "_Data()" della GridView la visibilità del testo presente in una o più celle e la contestuale colorazione dello sfondo delle celle medesime, è necessario impostare il predetto testo preliminarmente rispetto alla sollevazione dell'Evento "_Data()". Il testo va inserito in una matrice di tipo Stringa di due dimensioni aventi ciascuna un numero di elementi pari rispettivamente al numero delle righe ed al numero di colonne previsto per la GridView. Il testo andrà distribuito all'interno di dette dimensioni ed elementi secondo la disposizione che dovrà assumere nella GridView.

Mostriamo un esempio pratico:

Private ss As New String[3, 3]


Public Sub Form_Open()
 
 With GridView1
   .Rows.Count = 3
   .Columns.Count = 3
 End With
 
' Imposta il testo nelle celle:
 ss[1, 0] = "Rosso"
 ss[1, 1] = "grassetto"
 ss[1, 2] = "corsivo"
 
 ss[2, 0] = "corsivo"
 ss[2, 1] = "Blu"
 ss[2, 2] = "grassetto"
  
End


Public Sub GridView1_Data(Row As Integer, Column As Integer)

' Gestisce il colore dello sfondo delle celle individuate:
 If (Row = 1) And (Column = 1) Then GridView1.Data.Background = Color.SetAlpha(&FF0000, 240)
 If (Row = 1) And (Column = 2) Then GridView1.Data.Background = Color.SetAlpha(&FFFF00, 240)   
 If (Row = 2) And (Column = 1) Then GridView1.Data.Background = Color.SetAlpha(&00FF00, 240)
 If (Row = 2) And (Column = 2) Then GridView1.Data.Background = Color.SetAlpha(&0000FF, 240)
  
' Imposta alcune proprietà del font:
 If (Row = 1) And (Column = 0) Then GridView1.Data.Foreground = Color.Red
 If (Row = 1) And (Column = 1) Then GridView1.Data.Font.Bold = True
 If (Row = 1) And (Column = 2) Then GridView1.Data.Font.Italic = True

 If (Row = 2) And (Column = 0) Then GridView1.Data.Font.Italic = True
 If (Row = 2) And (Column = 1) Then GridView1.Data.Foreground = Color.Blue
 If (Row = 2) And (Column = 2) Then GridView1.Data.Font.Bold = True
 
' Assegna la variabile vettoriale contenente il testo:
 GridView1.Data.Text = ss[Row, Column]
 
End


Gestione delle immagini

Per la gestione delle immagini, da mostrare in una o più celle della GridView, è sufficiente assegnare alla Proprietà ".Data.Picture" l'immagine prescelta:

Public Sub Form_Open()

 With GridView1
   .Rows.Count = 3
   .Columns.Count = 3
 End With

' Adatta la cella [1, 1] alla dimensione dell'immagine che sarà caricata:
 GridView1.Rows[1].H = -1
 GridView1.Columns[1].W = -1

End


Public Sub GridView1_Data(Row As Integer, Column As Integer)

 If (Row = 1) And (Column = 1) Then GridView1.Data.Picture = Picture["icon:/32/apply"]

End