ciao
ti posto il codice dwella funzione che riesce a unire le celle , la funzione vuole il numero colonna come parametro e unisce le celle in base lla colonna,se trova le stesse occorrenze
Public Sub UnisciColonneDatagrid(ByVal DG As DataGrid, ByVal Col As Int16)
Dim i As Integer
Dim Sapp As String = ""
Dim Ssucc As String = ""
Dim conta As Int16 = 1 'conta le occorrenze
Dim cc As TableCell
For i = 0 To DG.Items.Count - 1
Sapp = DG.Items(i).Cells(Col).Text
If i = DG.Items.Count - 1 Then '-----ultima riga
If Ssucc = Sapp Then
DG.Items(i).Cells.RemoveAt(Col)
cc.RowSpan = conta ' - 1 '+ 1
cc.Text = Sapp
DG.Items(i - conta + 1).Cells.AddAt(Col, cc) '- conta
End If
GoTo continua'sostituire con variabile bool
Else
Ssucc = DG.Items(i + 1).Cells(Col).Text
End If
If Sapp = Ssucc Then 'Or (Ssucc = Sapp) Then 'And Sprec <> ""
conta = conta + 1
cc = DG.Items(i).Cells(Col)
DG.Items(i).Cells.RemoveAt(Col)
ElseIf Sapp <> Ssucc And conta > 1 Then
DG.Items(i).Cells.RemoveAt(Col)
cc.RowSpan = conta ' - 1 '+ 1
cc.Text = Sapp
DG.Items(i - conta + 1).Cells.AddAt(Col, cc) '- conta
conta = 1 'resetto il conta
End If
continua:'da eliminare
Next
End Sub
il guaio di questa funzione è che nonostanze sembri funzionare, se si ha nel datagrid una colonna template con una combobox e si tenta di ciclare la grigglia, riusciresti solo a prendere la prima occorrenza della combo,se in una cella prima è stata unita :(
grazie
p.s.
la funzione ovviamente è da migliorare,quindi non guardare le ottimizzazioni, ma solo dove genera questa fastidioso errore,e mi riferisco ache ad "on error..."