Gewusst wie: Anzeigen eines Formulars in der Seitenansicht
Aktualisiert: November 2007
In diesem Beispiel wird veranschaulicht, wie Sie eine Kopie des aktuellen Formulars in der Seitenansicht anzeigen.
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();
printPreviewDialog1.Show();
}
Kompilieren des Codes
Für dieses Beispiel benötigen Sie:
Eine PrintDocument-Komponente mit dem Namen printDocument1 mit einem PrintPage-Ereignishandler
Eine PrintPreviewDialog-Komponente mit dem Namen printPreviewDialog1. Die Document-Eigenschaft muss auf printDocument1 festgelegt sein.
Ein Button-Steuerelement mit dem Namen printButton mit einem Click-Ereignishandler
Die bestehenden Ereignishandler werden durch den Beispielcode ersetzt. Sobald auf printButton geklickt wird, wird das Formular in der Seitenansicht angezeigt.
Robuste Programmierung
Unter den folgenden Umständen können Ausnahmen auftreten:
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.
Das Dialogfeld Seitenansicht wurde zuvor entfernt. Diese Situation tritt ein, nachdem das Dialogfeld Seitenansicht geschlossen wurde.
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#