質問

私はトラブルの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よりも高い値に、の行動のセクションにあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top