Somehow i need to do merge cell of my datagridview, and below script is how to do that
Public Class MERGE_CELL_DGV
Private Sub MERGE_CELL_DGV_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim Meja As New DataTable
Dim CekBox As New DataGridViewCheckBoxColumn
With Meja
.Columns.Add("DEPT")
.Columns.Add("SEKSI")
.Columns.Add("NAMA")
.Rows.Add("TCI", "C&N", "ALFIAN")
.Rows.Add("TCI", "C&N", "YAKUB")
.Rows.Add("TCI", "AF", "WIRAD")
.Rows.Add("FIN", "CCA", "WULAN")
.Rows.Add("FIN", "CCA", "DIAN")
.Rows.Add("TCI", "AF", "TAUFIQ")
.Rows.Add("TCI", "AF", "IRLON")
End With
DgvMERGECELL.DataSource = Meja
DgvMERGECELL.Columns.Insert(3, CekBox)
End Sub
Private Sub _
DataGridView1_CellPainting(sender As Object, e As _
System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
Handles DgvMERGECELL.CellPainting
If e.RowIndex + 1 < DgvMERGECELL.Rows.Count Then If e.Value = DgvMERGECELL.Rows(e.RowIndex + 1).Cells(e.ColumnIndex).Value Then e.AdvancedBorderStyle.Bottom = _ DataGridViewAdvancedCellBorderStyle.None End If End If 'this conditional rule will affected to first and second column If DgvMERGECELL.Columns(0).Index = e.ColumnIndex AndAlso e.RowIndex >= 1 _
Or DgvMERGECELL.Columns(1).Index = e.ColumnIndex AndAlso e.RowIndex >= 1 Then
If e.Value = DgvMERGECELL.Rows(e.RowIndex - 1).Cells(e.ColumnIndex).Value Then
e.Graphics.FillRectangle(New SolidBrush(e.CellStyle.BackColor), e.CellBounds)
e.PaintBackground(e.CellBounds, False)
e.Handled = True
End If
End If
End Sub
End Class
Public Class MERGE_CELL_DGV
Private Sub MERGE_CELL_DGV_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim Meja As New DataTable
Dim CekBox As New DataGridViewCheckBoxColumn
With Meja
.Columns.Add("DEPT")
.Columns.Add("SEKSI")
.Columns.Add("NAMA")
.Rows.Add("TCI", "C&N", "ALFIAN")
.Rows.Add("TCI", "C&N", "YAKUB")
.Rows.Add("TCI", "AF", "WIRAD")
.Rows.Add("FIN", "CCA", "WULAN")
.Rows.Add("FIN", "CCA", "DIAN")
.Rows.Add("TCI", "AF", "TAUFIQ")
.Rows.Add("TCI", "AF", "IRLON")
End With
DgvMERGECELL.DataSource = Meja
DgvMERGECELL.Columns.Insert(3, CekBox)
End Sub
Private Sub _
DataGridView1_CellPainting(sender As Object, e As _
System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
Handles DgvMERGECELL.CellPainting
If e.RowIndex + 1 < DgvMERGECELL.Rows.Count Then If e.Value = DgvMERGECELL.Rows(e.RowIndex + 1).Cells(e.ColumnIndex).Value Then e.AdvancedBorderStyle.Bottom = _ DataGridViewAdvancedCellBorderStyle.None End If End If 'this conditional rule will affected to first and second column If DgvMERGECELL.Columns(0).Index = e.ColumnIndex AndAlso e.RowIndex >= 1 _
Or DgvMERGECELL.Columns(1).Index = e.ColumnIndex AndAlso e.RowIndex >= 1 Then
If e.Value = DgvMERGECELL.Rows(e.RowIndex - 1).Cells(e.ColumnIndex).Value Then
e.Graphics.FillRectangle(New SolidBrush(e.CellStyle.BackColor), e.CellBounds)
e.PaintBackground(e.CellBounds, False)
e.Handled = True
End If
End If
End Sub
End Class
Comments
Post a Comment