Please see my question. I will assume you need a screen shot.
First of all, you need to put the form on top, to see it all. If you want, you can easily remember the current Z-order and restore it later, using raw Windows API (do I even need to explain how? just look at the window functions; unfortunately, you have to use P/Invoke). I don't know if you can do it without showing the whole form and suspect it's impossible. The method requires the whole form to be shown on screen.
You just find out the form size and location in screen coordinates, and use System.Drawing.Graphics.CopyFromScreen for an instance of
System.Drawing.Graphics
taken from a newly created instance of
System.Drawing.Bitmap
. You can find some code sample here:
http://pcsxcetrasupport3.wordpress.com/2012/03/09/windows-form-screenshot-and-print-preview-in-vb-net/[
^].
Using PDF for such things is not a good idea (even if you create it for documentation, you can do it later), but you always can make PDF from image if you use, for example, iText, more exactly, its .NET port, iTextSharp:
http://en.wikipedia.org/wiki/IText[
^],
http://itextpdf.com/[
^],
http://sourceforge.net/projects/itextsharp/[
^].
In included the reference to Java iText site as well, because most documentation is there. If you understand C#, it would not be difficult to understand Java-bases API documentation.
—SA