Unire in una GridView le celle in un'unica grande cella
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.
Indice
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
Unire un gruppo di celle di una riga individuando con il puntatore del mouse la prima e l'ultima cella del gruppo
In quest'altro esempio le celle, da unire, di una riga saranno individuate, cliccando sulla prima cella da unire e, (mantenendo premuto il tasto del mouse) dopo esserci spostati con il puntatore del mouse sull'ultima cella da unire, rilasciando su quest'ultima cella il tasto del mouse:
Private cl As Short Public Sub Form_Open() With GridView1 .Columns.Count = 3 .Rows.Count = 4 End With End Public Sub GridView1_Click() cl = GridView1.Column End Public Sub GridView1_MouseUp() ' Consente di ottenere l'unione delle celle su una medesima riga sia se ci si sposta con il mouse verso destra che verso sinistra: If cl > GridView1.Column Then GridView1[GridView1.Row, GridView1.Column].ColumnSpan = cl - GridView1.Column + 1 Else GridView1[GridView1.Row, cl].ColumnSpan = GridView1.Column - cl + 1 Endif End
Unire le celle di una riga contestualmente allo spostamento del puntatore del mouse su di esse
In questo caso si cliccherà con il mouse sulla prima cella da unire; poi mantenendo premuto e spostando il puntatore del mouse lungo la riga, si avrà la fusione delle celle che si attraversano con il puntatore.
Private cl As Short Public Sub Form_Open() With GridView1 .Rows.Count = 3 .Columns.Count = 3 End With End Public Sub GridView1_Click() GridView1.Current.Background = Color.Red cl = GridView1.Column End Public Sub GridView1_MouseMove() If Not Object.IsValid(GridView1.Current) Then Return If cl < GridView1.Column Then GridView1[GridView1.Row, cl].ColumnSpan = GridView1.Column - cl + 1 Else GridView1[GridView1.Row, GridView1.Column].ColumnSpan = cl - GridView1.Column + 1 Endif ' Colora di rosso il gruppo di celle unificato: GridView1.Current.Background = Color.Red 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
Unire un gruppo di celle di una colonna individuando con il puntatore del mouse la prima e l'ultima cella del gruppo
In quest'altro esempio le celle, da unire, di una colonna da unire saranno individuate, cliccando sulla prima cella da unire e, (mantenendo premuto il tasto del mouse) dopo esserci spostati con il puntatore del mouse sull'ultima cella da unire, rilasciando su quest'ultima cella il tasto del mouse:
Private rw As Short Public Sub Form_Open() With GridView1 .Columns.Count = 3 .Rows.Count = 10 End With End Public Sub GridView1_Click() rw = 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 < rw Then GridView1[.Row, .Column].RowSpan = rw - .Row + 1 Else GridView1[rw .Column].RowSpan = .Row - rw + 1 Endif End With End
Unire le celle di una colonna contestualmente allo spostamento del puntatore del mouse su di esse
In questo caso si cliccherà con il mouse sulla prima cella da unire; poi mantenendo premuto e spostando il puntatore del mouse lungo la colonna, si avrà la fusione delle celle che si attraversano con il puntatore.
Private rw As Short Public Sub Form_Open() With GridView1 .Rows.Count = 3 .Columns.Count = 3 End With End Public Sub GridView1_Click() GridView1.Current.Background = Color.Red rw = GridView1.Row End Public Sub GridView1_MouseMove() If Not Object.IsValid(GridView1.Current) Then Return If rw < GridView1.Row Then GridView1[rw, GridView1.Column].RowSpan = GridView1.Row - rw + 1 Else GridView1[GridView1.Row, GridView1.Column].RowSpan = rw - GridView1.Row + 1 Endif ' Colora di rosso il gruppo di celle unificato: GridView1.Current.Background = Color.Red End
Unire più aree di celle già unite
Se, unendo le celle, sono stati realizzati due o più gruppi di celle unificate e si intende unire tra loro tali gruppi unificati, bisognerà partire con il puntatore del mouse dall'area cella, che era stata la prima del gruppo da cui si parte, fino all'area della cella che era stata l'ultima del gruppo che si vuole ora unire al gruppo di partenza.
Riga iniziale con 8 celle:
Riga dopo accorpamento con due gruppi di celle formati da 3 celle originarie:
1° gruppo | 2° gruppo |
Per unire le due aree, formate da 3 celle unite, si dovrà cliccare sulla parte più a sinistra del primo gruppo di celle da unire, e rilasciare il tasto del mouse nella parte più a destra del secondo gruppo di celle da unire al primo (ossia a quello dal quale siamo partiti e che è posto a destra del secondo gruppo).
◆··→··→·· | ··→··→··◆ |
⬇Pressione | rilascio⬆ |
Quanto sopra descritto, potrà essere testato con il seguente codice:
Private cl As Short Public Sub Form_Open() With GridView1 .Columns.Count = 12 .Rows.Count = 4 End With End Public Sub GridView1_Click() cl = GridView1.Column End Public Sub GridView1_MouseUp() ' Consente di ottenere l'unione delle celle su una medesima riga: If cl > GridView1.Column Then GridView1[GridView1.Row, cl].ColumnSpan = GridView1.Column - cl + 1 Endif End
Separare nuovamente le celle precedentemente unite
Con i medesimi codici, sopra descritti, è possibile separare nuovamente le celle che erano state unite.
Se in una cella sono state unificate le celle di più righe (usando la Proprietà ".RowSpan"), per unire due celle va cliccato sulla parte (della cella unificata) superiore alla nuova cella che si intende ricreare.
Similmente, se in una cella sono state unificate le celle di più colonne (usando la Proprietà ".ColumnSpan"), per unire due celle va cliccato sulla parte (della cella unificata) a sinistra della nuova cella che si intende ricreare.