Es ist schwer, ohne den Rest des Codes sicher zu sagen, aber es sieht aus wie der Code, den Sie gepostet ein Bild des Formulars selbst erstellen, anstatt die TableLayoutPanel
, die Sie drucken möchten. Wenn Sie this
keyword verwenden, bezieht sich das auf die aktuelle Instanz der Klasse, die Ihren Code enthält. Vermutlich ist dies Ihre Form
, die nicht das ist, was Sie drucken möchten (aber erklärt, warum es die ganze Sache zeigt).
Stattdessen können Sie einfach ein Bild des TableLayoutPanel
erstellen (DrawToBitmap
method) und das ausdrucken. Sie müssen kein Graphics
Objekt erstellen oder die genauen Koordinaten des Bildschirmstandorts angeben, den Sie kopieren möchten. Zum Beispiel:
//Create a temporary image to draw into
//with the dimensions of your TableLayoutPanel
using (Bitmap printImage = new Bitmap(myTableLayoutPanel.Width, myTableLayoutPanel.Height))
{
//Draw the TableLayoutPanel control to the temporary bitmap image
myTableLayoutPanel.DrawToBitmap(printImage, new Rectangle(0, 0, printImage.Width, printImage.Height));
//(...your code continues here, except that now you
// will print the temporary image you just created)
printPreviewDialog1.Document = PrintDoc1;
PrintDoc1.PrintPage += printDocument2_PrintPage;
printPreviewDialog1.ShowDialog()
}
ich nicht aus dem Code kann sagen, dass Sie auf dem Laufenden, wie genau bist du das Bild vorbei, die auf Ihren Druckvorschau-Dialog gedruckt werden soll, dafür aber du hast arbeiten sie mit memoryImage
vor solltest Arbeiten Sie mit dem neuen printImage
im obigen Beispielcode.
Beachten Sie, dass die DrawToBitmap
Methode wird kein Kind TextBox
Kontrolle ziehen, wenn seine Visible
Eigenschaft auf False
gesetzt ist, und dass Ihre Kontrollen werden in umgekehrter Reihenfolge gezogen werden. Sie müssen sicherstellen, dass das Aussehen für Ihre Anwendung akzeptabel ist, aber in den meisten Fällen ist dies der einfachste Weg.
Ich nehme aus dem Titel, dass der weiße Teil ein 'TableLayoutPanel' ist, und das einzige, was Sie drucken möchten, ist das, richtig? –
Ja, Sie haben Recht. Kannst du mir bitte sagen, wie ich das machen kann? – Dusk