Sdílet prostřednictvím


Gewusst wie: Drucken eines Formulars

Aktualisiert: November 2007

In diesem Beispiel wird veranschaulicht, wie Sie eine Kopie des aktuellen Formulars drucken.

Beispiel

[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();
}

Kompilieren des Codes

Dieses Beispiel setzt Folgendes voraus:

  • Eine PrintDocument-Komponente mit dem Namen printDocument1 mit einem PrintPage-Ereignishandler

  • Ein Button-Steuerelement mit dem Namen printButton mit einem Click-Ereignishandler

Die bestehenden Ereignishandler werden durch den Beispielcode ersetzt. Das Formular wird gedruckt, sobald auf printButton geklickt wird.

Robuste Programmierung

Unter folgenden Bedingungen kann es zu Ausnahmen kommen:

  • Sie verfügen nicht über die entsprechende Berechtigung für den Zugriff auf den Drucker.

  • Sie verfügen nicht über die entsprechende Berechtigung, nicht verwalteten Code zu verwenden.

  • Es ist kein Drucker installiert.

Sicherheit

Um dieses Beispiel ausführen zu können, müssen Sie über die Berechtigung verfügen, nicht verwalteten Code auszuführen und auf den Drucker zuzugreifen.

Siehe auch

Konzepte

Entwerfen einer Benutzeroberfläche in Visual C#

Weitere Ressourcen

Anpassen, Anzeigen und Drucken von Windows Forms

Einführung in Visual C#