VB.NET
Private Sub dgv1_RowPostPaint(ByVal sender As Object, _
ByVal e As DataGridViewRowPostPaintEventArgs) _
Handles dgv1.RowPostPaint
Dim dgv As DataGridView = CType(sender, DataGridView)
Dim linePen As Pen
Select Case e.RowIndex Mod 3
Case 0
linePen = Pens.Blue
Case 1
linePen = Pens.Green
Case Else
linePen = Pens.Red
End Select
Dim startX As Integer = IIf(dgv.RowHeadersVisible, dgv.RowHeadersWidth, 0)
Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
Dim endX As Integer = startX + _
dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - _
dgv.HorizontalScrollingOffset
e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
End Sub
C#private void dgv1_RowPostPaint(object sender,
DataGridViewRowPostPaintEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
Pen linePen;
switch (e.RowIndex % 3)
{
case 0:
linePen = Pens.Blue;
break;
case 1:
linePen = Pens.Green;
break;
default:
linePen = Pens.Red;
break;
}
int startX = dgv.RowHeadersVisible ? dgv.RowHeadersWidth : 0;
int startY = e.RowBounds.Top + e.RowBounds.Height - 1;
int endX = startX + dgv.Columns.GetColumnsWidth(
DataGridViewElementStates.Visible) -
dgv.HorizontalScrollingOffset;
e.Graphics.DrawLine(linePen,
startX, startY, endX, startY);
}