Comment : imprimer un formulaire

Mise à jour : novembre 2007

Cet exemple montre comment imprimer une copie du formulaire en cours.

Exemple

[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern long BitBlt (IntPtr hdcDest, int nXDest, int nYDest, 
    int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
private 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);
    IntPtr dc1 = mygraphics.GetHdc();
    IntPtr dc2 = memoryGraphics.GetHdc();
    BitBlt(dc2, 0, 0, this.ClientRectangle.Width,
        this.ClientRectangle.Height, dc1, 0, 0, 13369376);
    mygraphics.ReleaseHdc(dc1);
    memoryGraphics.ReleaseHdc(dc2);
}
private void printDocument1_PrintPage(System.Object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    e.Graphics.DrawImage(memoryImage, 0, 0);
}
private void printButton_Click(System.Object sender, System.EventArgs e)
{
    CaptureScreen();
    printDocument1.Print();
}

Compilation du code

Cet exemple nécessite :

  • Un composant PrintDocument nommé printDocument1 avec un gestionnaire d'événements PrintPage.

  • Un composant Button nommé printButton avec un gestionnaire d'événements Click.

Cet exemple de code remplace les gestionnaires d'événements existants. Un clic sur printButton permet d'imprimer le formulaire.

Programmation fiable

Les conditions ci-dessous peuvent générer une exception :

  • Vous n'avez pas l'autorisation d'accéder à l'imprimante.

  • Vous n'avez pas l'autorisation d'utiliser du code non managé.

  • Aucune imprimante n'est installée.

Sécurité

Pour exécuter cet exemple, vous devez avoir l'autorisation d'exécuter du code non managé et d'accéder à l'imprimante.

Voir aussi

Concepts

Conception d'une interface utilisateur en Visual C#

Autres ressources

Personnalisation, affichage et impression des Windows Forms

Visite guidée de Visual C#