Как рисовать вертикальные линии между строками в DataGridView? - PullRequest
0 голосов
/ 07 июня 2019

Мне нужно нарисовать какие-то скобки между строками, чтобы пользователь знал, что строки имеют какое-то отношение (я не хочу объединять ячейки).Пока выглядит красиво, но когда прокрутка становится беспорядком.

When loading When scrolling down and up

Я не смог понять этоиз.Разве нет способа нарисовать постоянные вертикальные линии, чтобы держать их в порядке?

Private Sub dgcontrol_CellPainting(ByVal sender As Object, ByVal e As DataGridViewCellPaintingEventArgs) Handles dgcontrol.CellPainting
If sender.Columns(e.ColumnIndex).Name = "xrow2" Then
 Dim rec1 As Rectangle = dgcontrol.GetCellDisplayRectangle(2, 0, False)
 Dim rec2 As Rectangle = dgcontrol.GetCellDisplayRectangle(2, 1, False)
 Dim gridBrush As Brush = New SolidBrush(Color.Red)
 Dim gridLinePen As Pen = New Pen(gridBrush, 2)
 e.Graphics.DrawLine(gridLinePen, New Point(rec1.X + rec1.Width - 2 - rec1.Width / 5, rec1.Y + rec1.Height / 3), New Point(rec1.X + rec1.Width - 2, rec1.Y + rec1.Height / 3))
 e.Graphics.DrawLine(gridLinePen, New Point(rec2.X + rec1.Width - 2 - rec1.Width / 5, rec2.Y + rec2.Height - rec2.Height / 3), New Point(rec2.X + rec1.Width - 2, rec2.Y + rec2.Height - rec2.Height / 3))
 e.Graphics.DrawLine(gridLinePen, New Point(rec1.X + rec1.Width - 3, rec1.Y + rec1.Height / 3), New Point(rec2.X + rec1.Width - 3, rec2.Y + rec2.Height - rec2.Height / 3))
 e.Handled = False
End If End Sub
...