Frage

Ich habe Probleme, mehrere Seiten in einem Printdocument zu schaffen und sie in einem Printpreview anzeigt. Ich kann leicht genug, um eine einzelne Seite erstellen, aber zusammen mehr Seiten Bespannen ist mir eluding.

Ich werde schließlich mehrere Seiten von Sachen zeichnen GDI verwenden, aber ich kann nicht so etwas wie dieses erhalten wie erwartet funktionieren.

private PrintDocument doc = new PrintDocument();
private string[] printMe = new string[]{ "page1", "page2", "page3" );
private int pageCount = 0;

private void FormLoad(object sender, EventArgs e)
{
 doc.PrintPage += new PrintPageEventHandler(PrintPage);
 PrintPreviewControl.Document = doc;
}

private void doc_BeginPrint(object sender, PrintEventArgs e){ pageCount = 0; }

private void PrintPage(object sender, PrintPageEventArgs e)
{
 Graphics g = e.Graphics;
 g.DrawString(drawMe[pageCount++], "Lucida Console", Brushes.Black, new Point(20,20));

 e.HasMorePages = (pageCount  printMe.Length );
}

Die Idee ist, dass drei separate Seiten erstellt werden, und in dem Printpreview-Steuerelement angezeigt. Was bin ich?

War es hilfreich?

Lösung

Ihr Code-Snippet wurde genau an dem kritischen Punkt verstümmelt, in dem Sie e.HasMorePages zuweisen. Es gibt ein eklatantes Problem in Ihrem Code. Sie Beginprint-Event-Handler implementieren müssen die Seitenzähler wieder auf 0 zurückgesetzt

Andere Tipps

Ich bin mir nicht sicher, wie alle Seiten standardmäßig zu zeigen, aber Sie können durch Einstellen der PrintPreviewControl Eigenschaft, gefunden in dem Layout der in der Columns mehr als eine Seite zeigen Eigenschaften Fenster und / oder die Rows Eigenschaft, gefunden in dem Verhalten Abschnitt, auf einen Wert höher als 1 ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top