PrintPreviewControl上のPrintDocumentのすべてのページを表示します
-
18-09-2019 - |
質問
私はトラブルのPrintDocumentで複数のページを作成したとPrintPreviewControl内でそれらを表示しています。私は簡単に十分な単一のページを作成することができますが、複数のページを一緒に糸引きして、私を逃亡されます。
私は最終的にGDIを使ってものの数ページを描画するつもりですが、私は予想通り、このような何かを動作させることはできません。
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 );
}
3つの別々のページが作成され、PrintPreviewコントロール内に表示されているということでアイデア。私は何をしないのですか?
解決
あなたのコードスニペットは、あなたがe.HasMorePagesを割り当てる臨界点、で正確にマングルました。あなたのコード内の1つの明白な問題があります:あなたが0に戻ってページカウンタをリセットするためにBeginPrintイベントハンドラを実装する必要があります。
他のヒント
私は、デフォルトですべてのページを表示するかどうかはわかりませんが、あなたはのののレイアウトのセクションにPrintPreviewControl
プロパティを設定することによってColumns
に複数のページを表示することができますプロパティのウィンドウ、および/またはRows
プロパティ、1よりも高い値に、の行動のセクションにあります。
所属していません StackOverflow