Here is something that that might help get you started ... the CapturePanel
method is probably what your looking for.
Imports System.Runtime.InteropServices
#Region " Printing Support "
<DllImport("gdi32.DLL", EntryPoint:="BitBlt", SetLastError:=True,
CharSet:=CharSet.Unicode, _
ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
Private Shared Function BitBlt(ByVal hdcDest As IntPtr, ByVal nXDest As
Integer, ByVal nYDest As Integer, ByVal nWidth As Integer, ByVal nHeight As
Integer, ByVal hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As
Integer, ByVal dwRop As System.Int32) As Boolean
' Leave function empty - DLLImport attribute forwards calls to MoveFile to
' MoveFileW in KERNEL32.DLL.
End Function
'Returns the panel as a bitmap
Private Function CapturePanel() As Bitmap
Dim g1 As Graphics = Me.CreateGraphics()
Dim MyImage As Bitmap = New Bitmap(Me.ClientRectangle.Width,
(Me.ClientRectangle.Height), g1)
Dim g2 As Graphics = Graphics.FromImage(MyImage)
Dim dc1 As IntPtr = g1.GetHdc()
Dim dc2 As IntPtr = g2.GetHdc()
BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, (Me.ClientRectangle.Height),
dc1, 0, 0, 13369376)
g1.ReleaseHdc(dc1)
g2.ReleaseHdc(dc2)
'saves image to c drive for testing - comment out for production
'MyImage.Save("c:\abc.bmp")
Return MyImage
End Function
#End Region