How to: Print a Form

Visual Studio 2008

Updated: December 2008

This example demonstrates how to print a copy of the current form.

using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Printing;

public class Form1 : Form
    private Button printButton = new Button();
    private PrintDocument printDocument1 = new PrintDocument();

    public Form1()
        printButton.Text = "Print Form";
        printButton.Click += new EventHandler(printButton_Click);
        printDocument1.PrintPage +=
            new PrintPageEventHandler(printDocument1_PrintPage);

    void printButton_Click(object sender, EventArgs e)

    Bitmap memoryImage;

    private void CaptureScreen()
        Graphics myGraphics = this.CreateGraphics();
        Size s = this.Size;
        memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
        Graphics memoryGraphics = Graphics.FromImage(memoryImage);
            this.Location.X, this.Location.Y, 0, 0, s);

    private void printDocument1_PrintPage(System.Object sender,  
           System.Drawing.Printing.PrintPageEventArgs e)
        e.Graphics.DrawImage(memoryImage, 0, 0);

    public static void Main()
        Application.Run(new Form1());

  1. Create a new Windows Forms application.

  2. Replace the Program.cs file content with the example code.

The following conditions may cause an exception:

  • You do not have permission to access the printer.

  • You do not have permission to use unmanaged code.

  • There is no printer installed.

In order to run this example, you must have permission to execute unmanaged code and to access the printer.




December 2008

Updated the example.

Customer feedback.

Community Additions