I'll make a wild guess at it. I'm at work and don't have access right now to the C# IDE, plus I'm a newbie, but maybe I can get you on the right track.
It was my impression that the standard way of drawing on a form is to make use of the GDI graphics object which paints every form. This graphics object is part of the event object "e" passed by dot net into the form1_paint event, something like this (if i can recall)
Form1_Paint(Object sender, PaintEventArgs e)
{
Here you can make use of the graphics object to draw on the form. For example
Font f = new Font("New Times Roman", 24)
e.Graphics.DrawString("This is my form", brushes.black, 0, 0) //0,0 is location x,y to start drawing
}
The graphics object is a drawing surface. Your comomands such as DrawString draw on the surface, and then dotnet transfers the image from the surface onto the form at the end of the paint event. However, you don't have to put the commands in the block above. You can send the Graphics object (the drawing surface) to a separate sub (call it DrawingSub) to do the drawing in that sub using code seomthing like this
Dim DrawArea as Graphics = e.Graphics
DrawingSub(DrawArea) 'passes drawing surface to a drawing sub
and then
Private Sub DrawingSub(Graphics DrawingArea)
DrawingArea.DrawString("This is my form")
End sub
The advantange of doing it this way is that it saves code if you want to save this image. Elsewhere you can create a second drawing surface bound to a bitmpa, and pass it into the DrawingSub above
Dim Bitmpa1 As New Bitmap(850, 650, Imaging.PixelFormat.Format32bppArgb)
Dim DrawArea2 As Graphics = Graphics.FromImage(EobImage)
Call DrawingSub(DrawingArea2) 'draws the same stuff on the bitmap
Bitmap1.Save("C:myImage.Tif", ImageFormat1.Tiff)
But since dotNet probably does some default drawing on a Form, I can't guarantee (havent tried it) that your saved image will have EVERYTHIGN that the form has. Well, hope this helped anyway.