What I'd do, and it's a bit of a pain, is create a new form and set the display properties (i.e. background colour, foreground colour, etc) to be that of the form that's been passed in. Add all controls that you want to print to this form. Then print this form and dispose of it.
Either that, or you could create a new class called something like 'Clonable Form' which inherits from Form but exposes the IClonable interface. Then make all your forms inherit from this rather than System.Windows.Forms.Form. Not sure how well, or if, this would work, it's just an idea that occurred to me as I was writing the reply.
|