0

c#(Visual Studio .NET 2005または2008)を使用して、フローレイアウトパネルにある10個の画像すべてを印刷するのを手伝ってくれる人はいますか

これを行う方法がわかりませんか?

4

1 に答える 1

0

WinForms FlowLayoutPanel について質問し、PictureBox-es を使用して画像を表示している場合は、次のようなことを試すことができます。

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 のコントロール タイプの確認、印刷を開始する前の画像数の確認、画像の拡大縮小などの作業が必要になる場合があることに注意してください。

于 2011-02-07T10:37:09.350 に答える