There's an article from Microsoft:
How to: Print a Windows Form which shows how to print a form as is. You can change the code for the printButton_Click event to hide the controls, print, then restore the controls like so:
void printButton_Click(object sender, EventArgs e)
{
this.ControlBox = false;
CaptureScreen();
printDocument1.Print();
this.ControlBox = true;
}
Keep in mind that if you don't have a title for your form, it will hide the title bar.