[vb.net] datagridview cell merge
셀병합은 아니고 병합같은 효과를 주는 방법..
셀합치는 것중에 그나마 이게 제일 간단한 방법이긴 한데 합친 셀을 클릭시 텍스트가 보이지 않는 버그가 있다.
합친 셀을 선택하지 않으면 문제될 건 없고 이것저것 수정하면 원하는 결과를 얻을 수는 있을거 같다.
Private Sub dg_ESC_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles dgv.CellPainting
Dim fnt As New Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Point)
Dim rct1 As New Rectangle((dgv.GetColumnDisplayRectangle(0, True).X), (dgv.GetColumnDisplayRectangle(0, True).Y + dgv.Columns(0).HeaderCell.ContentBounds.Height + 8), dgv.GetColumnDisplayRectangle(0, True).Width - 1, (dgv.GetRowDisplayRectangle((dgv.Rows.Count - 1), True).Top - dgv.GetRowDisplayRectangle((dgv.Rows.Count - 1), True).Height))
e.Graphics.FillRectangle(Brushes.White, rct1)
e.Graphics.DrawString("VERTICAL" & vbCrLf & "TEXT", fnt, Brushes.Black, rct1)
Dim rct As Rectangle = dgv.GetRowDisplayRectangle(3, True)
rct.Height -= 1
Dim s As SizeF = e.Graphics.MeasureString("HORINZONTAL TEXT", dgv.Font)
Dim lefts As Integer = (rct.Width / 2) - (s.Width / 2)
Dim tops As Integer = rct.Top + ((rct.Height / 2) - (s.Height / 2))
e.Graphics.FillRectangle(Brushes.White, rct)
e.Graphics.DrawString("HORINZONTAL TEXT", fnt, Brushes.Black, 2, tops)
End Sub