My best advice would be: print data, not controls. The concepts of those on-screen control are very different from what you need on paper. Screen views are fluid, paper image has to be fixed; controls allow user input, but clicking in a check box printed on paper will look pretty stupid. List boxes can show its drop-content on screen, but will show only one item on paper. And so on.
If you want to listen to this advice, print data. Use the class
System.Drawing.Printing.PrintDocument
:
https://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument%28v=vs.110%29.aspx[
^].
Don't want to listen to a reasonable advice, see, for example,
http://www.codeproject.com/search.aspx?q=Print+DataGridView&doctypeid=1%3b2%3b3%3b13%3b14%3b5[
^].
Good luck,
—SA