Impostare due parole ciascuna all'estremità opposta di una cella di una GridView

Da Gambas-it.org - Wikipedia.

E' possibile far apparire due parole ciascuna all'estremità opposta di una cella di una GridView, attraverso la conoscenza del numero di caratteri che colmeranno interamente la cella medesima.

Questo informazione può essere conseguita con sufficiente accuratezza sapendo la dimensione in pixel dei caratteri sulla base del font e delle altre loro caratteristiche assegnate.


Nell'esempio che segue abbiamo su un Form una GridView con tre colonne e tre righe. Nella cella in alto a sinisstra della prima riga della prima colonna vogliamo porre la parola "edera", all'estremità sinistra della cella, e la parola "sole" all'estremità destra della cella medesima.

Public Sub Form_Open()  
 
 Dim a, b, c, d As Short  
 
 
  d = 140  
 
  With GridView1  
    .Columns.count = 3  
    .Rows.Count = 3  
' Dimensioniamo la lunghezza dell'intera prima colonna ad esempio di 140 pixel:
    .Columns[0].Width = d  
  End With  
 
 
' Individuiamo la prima riga della prima colonna:
  With GridView1[0, 0]
' Impostiamo l'allineamento del testo al suo interno come "centrale":
    .Alignment = Align.Center  
' Verifichiamo quanti pixel occupa il carattere di uno "spazio":
    a = .Font.TextWidth(String$(1, Chr(32)))  
' Verifichiamo quanti pixel occupa l'intera parola "edera":
    b = .Font.TextWidth("edera")  
' Verifichiamo quanti pixel occupa l'intera parola "sole":
    c = .Font.TextWidth("sole")  
 
' Quindi applichiamo l'elaborazione alla cella prescelta della "GridView":
    .Text = "edera" & String$((d - (b + c)) \ a, Chr(32)) & "sole"  
  End With  
 
End