You will need to continue with the GDI+ graphics as shown in my sample, so a complete sunken border may look like this:
Public Class PanelWithBorder
Inherits Panel
Protected Overrides Sub OnPaint(e As PaintEventArgs)
MyBase.OnPaint(e)
Dim BorderWidth As Integer = 5
'* Draw a top border
Dim PolygonPoints(3) As System.Drawing.Point
PolygonPoints(0) = New Point(0, 0)
PolygonPoints(1) = New Point(Me.Width, 0)
PolygonPoints(2) = New Point(Me.Width - BorderWidth, BorderWidth)
PolygonPoints(3) = New Point(BorderWidth, BorderWidth)
e.Graphics.FillPolygon(Brushes.DarkGray, PolygonPoints)
'* Draw a left border
PolygonPoints(0) = New Point(0, 0)
PolygonPoints(1) = New Point(0, Me.Height)
PolygonPoints(2) = New Point(BorderWidth, Me.Height - BorderWidth)
PolygonPoints(3) = New Point(BorderWidth, BorderWidth)
e.Graphics.FillPolygon(Brushes.DarkGray, PolygonPoints)
'* Draw a bottom border
PolygonPoints(0) = New Point(0, Me.Height)
PolygonPoints(1) = New Point(Me.Width, Me.Height)
PolygonPoints(2) = New Point(Me.Width - BorderWidth, Me.Height - BorderWidth)
PolygonPoints(3) = New Point(BorderWidth, Me.Height - BorderWidth)
e.Graphics.FillPolygon(Brushes.LightGray, PolygonPoints)
'* Draw a right border
PolygonPoints(0) = New Point(Me.Width, 0)
PolygonPoints(1) = New Point(Me.Width, Me.Height)
PolygonPoints(2) = New Point(Me.Width - BorderWidth, Me.Height - BorderWidth)
PolygonPoints(3) = New Point(Me.Width - BorderWidth, BorderWidth)
e.Graphics.FillPolygon(Brushes.LightGray, PolygonPoints)
End Sub
End Class