Sebenarnya control DataGridView tidak memiliki fungsi untuk melakukan rowspan ataupun colspan, sebagaimana pendahulunya yaitu control GridView pada .Net 3.5. Sehingga untuk membuat rowspan maupun colspan perlu melakukan trik sebagai berikut.
advertisement
Membuat Rowspan Pada cell DataGridView
Disini kita akan mencoba menspan baris jika cell nya memiliki nilai yang sama pada kolom sebelumnya di baris yang sama. Seperti pada gambar berikut.
Triknya sederhana kita hanya perlu menggunakan Event Handle CellPainting yang ada pada DataGridView. Kemudian kita komparasi nilai Baris Ke 1 pada Kolom A dengan Baris Ke 1 pada Kolom B. Kemudian kita hapus border bawah lalu sembunyikan Nilai pada baris selanjutnya jika nilainya sama. Syntaxnya sebagai berikut.
Private Sub DataGridView1_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
Try
If e.RowIndex < dgv.Rows.Count - 1 Then
If e.Value.ToString = dgv.Rows(e.RowIndex + 1).Cells(e.ColumnIndex).Value.ToString Then 'menghapus Border
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None
e.CellStyle.BackColor = Color.White
End If
End If
If e.RowIndex >= 1 Then 'Menyembunyikan Nilai
If e.Value.ToString = dgv.Rows(e.RowIndex - 1).Cells(e.ColumnIndex).Value.ToString Then
e.CellStyle.BackColor = Color.White
e.Graphics.FillRectangle(New SolidBrush(e.CellStyle.BackColor), e.CellBounds)
e.PaintBackground(e.CellBounds, False)
If dgv.CurrentRow IsNot Nothing Then
If dgv.CurrentRow.Index.ToString <> e.RowIndex.ToString Then
e.Handled = True
End If
Else
e.Handled = True
End If
End If
End If
Catch ex As Exception
'MessageBox.Show(ex.Message)
End Try
End Sub
Membuat Colspan Pada cell DataGridView
Sama seperti cara membuat rowspan. Kita akan mencoba menspan kolom jika memiliki nilai yang sama. Hasilnya akan seperti gambar berikut.
Triknya juga sederhana kita hanya perlu menggunakan Event Handle CellPainting. Kemudian kita komparasi nilai Baris Ke 1 pada Kolom A dengan Baris Ke 2 pada Kolom A. Kemudian kita hapus border kanan lalu sembunyikan Nilai pada kolom selanjutnya jika memilki nilai yang sama. Codenya sebagai berikut. Syntaxnya sebagai berikut.
Private Sub DataGridView1_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
Try
If e.ColumnIndex < dgv.Columns.Count - 1 Then
If e.Value.ToString = dgv.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value.ToString Then 'Menghapus border
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None
e.CellStyle.BackColor = Color.White
End If
End If
If e.ColumnIndex >= 1 Then
If e.Value.ToString = dgv.Rows(e.RowIndex).Cells(e.ColumnIndex - 1).Value.ToString Then 'Menyembunyikan Nilai
e.CellStyle.BackColor = Color.White
e.Graphics.FillRectangle(New SolidBrush(e.CellStyle.BackColor), e.CellBounds)
e.PaintBackground(e.CellBounds, False)
If dgv.CurrentRow IsNot Nothing Then
If dgv.CurrentRow.Index.ToString <> e.RowIndex.ToString Then
e.Handled = True
End If
Else
e.Handled = True
End If
End If
End If
Catch ex As Exception
'MessageBox.Show(ex.Message)
End Try
End Sub
advertisement
Oke itu tadi trik cara membuat rowspan dan colspan di DataGridView. Jangan lupa di share jika kalian merasa artikel ini bermanfaat, dan jangan lupa tinggalkan jejak dengan berkomentar dibawah ini.
Silahkan berkomentar dengan baik dan bijak!