Unire in una GridView le celle in un'unica grande cella

Da Gambas-it.org - Wikipedia.

Per unire in una unica cella due o più celle di più righe, si utilizzerà la Proprietà ".RowSpan" delle celle. Per unire, invece, in una unica cella due o più celle di due o più colonne, si utilizzerà la Proprietà ".ColumnSpan" delle celle.

Unire le celle di due o più righe

Nell'esempio pratico, che segue, abbiamo una GridView formata da tre righe e tre colonne. Uniremo in un'unica cella le celle delle tre righe con riferimento alla seconda colonna. Ossia le seconde celle di ciascuna riga saranno unite a formare in un'unica grande cella verticale. Quindi la seconda colonna della GridView sarà formata da un'unica cella.
Inoltre inseriremo nell'unica grande cella un testo in basso al centro.

Public Sub Form_Open()

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

 With GridView1[0, 1]
   .RowSpan = 3
   .Alignment = Align.Bottom
   .Text = "testo"
 End With

End

In quest'altro esempio le celle di una colonna da unire saranno individuate, cliccando sulla prima cella da unire e, dopo esserci spostati con il puntatore del mouse sull'ultima cella da unire, rilasciando su quest'ultima cella il tasto del mouse:

Public Sub Form_Open()

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

End


Public Sub GridView1_Click()

 GridView1.Tag = GridView1.Row

End


Public Sub GridView1_MouseUp()

' Consente di ottenere l'unione delle celle su una medesima colonna sia se ci si sposta con il mouse verso il basso, sia verso l'alto:
 With GridView1
   If .Row < .Tag Then 
     GridView1[.Row, .Column].RowSpan = .Tag - .Row + 1
   Else 
     GridView1[.Tag, .Column].RowSpan = .Row - .Tag + 1
   Endif 
 End With

End


Unire le celle di due o più colonne

Nell'esempio pratico, che segue, abbiamo una GridView formata da tre righe e tre colonne. Uniremo in un'unica cella le celle delle tre colonne con riferimento alla prima riga. Inoltre inseriremo nell'unica grande cella un testo al centro.

Public Sub Form_Open()

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

 With GridView1[0, 0]
   .ColumnSpan = 3
   .Alignment = Align.Center
   .Text = "testo"
 End With

End

In quest'altro esempio le celle di una riga da unire saranno individuate, cliccando sulla prima cella da unire e, dopo esserci spostati con il puntatore del mouse sull'ultima cella da unire, rilasciando su quest'ultima cella il tasto del mouse:

Public Sub Form_Open()

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

End


Public Sub GridView1_Click()

 GridView1.Tag = GridView1.Column

End


Public Sub GridView1_MouseUp()

' Consente di ottenere l'unione delle celle sulla medesima riga sia se ci si sposta con il mouse verso destra, sia verso sinistra:
 With GridView1
   If .Column < .Tag Then
     GridView1[.Row, .Column].ColumnSpan = .Tag - .Column + 1
   Else 
     GridView1[.Row, .Tag].ColumnSpan = .Column - .Tag + 1
   Endif
 End With

End