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内のコントロールの種類を確認する必要があります覚えておいてください:
印刷プレビューに問題があります。フローレイアウトコントロールからのすべての画像の印刷プレビューを表示するのを手伝ってください。 – james
PrintPreviewDialogコンポーネントを作成し、PrintDocumentをPreviewダイアログのDocumentプロパティに割り当てます。代わりにPrintDialogを使用することができます。しかし、プレビューダイアログから印刷する場合は、imagesToPrintCountをリセットする必要があることに注意してください。私が覚えているように、あなたは文書のBeginPrintイベントを使うことができます。 –