2011-02-07 11 views
0

は、誰も私が私がどのように行うために、任意のアイデアを持っていないのC#(Visual Studio .NETの2005または2008)C#を使用してflowlayoutpanelのすべての画像を印刷する方法を

を使用してflowlayoutpanelにある全10枚の画像を印刷するために助けることができますこの? 、

private int imagesToPrintCount; 

private void PrintAllImages() 
{ 
    imagesToPrintCount = flowLayoutPanel1.Controls.Count; 
    PrintDocument doc = new PrintDocument(); 
    doc.PrintPage += Document_PrintPage; 
    PrintDialog dialog = new PrintDialog(); 
    dialog.Document = doc; 

    if (dialog.ShowDialog() == DialogResult.OK) 
     doc.Print();  
} 

private void Document_PrintPage(object sender, PrintPageEventArgs e) 
{ 
    e.Graphics.DrawImage(GetNextImage(), e.MarginBounds); 
    e.HasMorePages = imagesToPrintCount > 0; 
} 

private Image GetNextImage() 
{ 
    PictureBox pictureBox = (PictureBox)flowLayoutPanel1.Controls[flowLayoutPanel1.Controls.Count - imagesToPrintCount]; 
    imagesToPrintCount--; 
    return pictureBox.Image; 
} 

あなたがFlowLayoutPanel内のコントロールの種類を確認する必要があります覚えておいてください:

答えて

0

あなたはWinFormsのFlowLayoutPanelについて尋ねると、あなたが画像を表示するためのPictureBox-ESを使用している場合は、このような何かを試すことができます印刷を開始する前に画像の数を確認したり、画像やその他のものを拡大したりすることができます。

+0

印刷プレビューに問題があります。フローレイアウトコントロールからのすべての画像の印刷プレビューを表示するのを手伝ってください。 – james

+0

PrintPreviewDialogコンポーネントを作成し、PrintDocumentをPreviewダイアログのDocumentプロパティに割り当てます。代わりにPrintDialogを使用することができます。しかし、プレビューダイアログから印刷する場合は、imagesToPrintCountをリセットする必要があることに注意してください。私が覚えているように、あなたは文書のBeginPrintイベントを使うことができます。 –

関連する問題