PrintDocument:解析索引

时间:2017-07-18 06:49:02

标签: c# for-loop

请参阅下面的代码。代码将在此处失败:person[i].Pic,因为i未知。

如何将索引i传递给PrintPage() - 方法?

private void BtnPrint_Click(object sender, EventArgs e)
{            
    for (int i = 0; i < persons.Count(); i++)
    {
        PrintDocument pd = new PrintDocument();
        pd.PrintPage += PrintPage;
        pd.Print();
    }
}

private void PrintPage(object o, PrintPageEventArgs e)
{            
    System.Drawing.Image img = System.Drawing.Image.FromFile(person[i].Pic);
    Point loc = new Point(400, 100);
    e.Graphics.DrawImage(img, loc);

}

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样:

private void BtnPrint_Click(object sender, EventArgs e)
{            
    for (int i = 0; i < persons.Count(); i++)
    {
        PrintDocument pd = new PrintDocument();

        pd.PrintPage += 
            delegate(object o, PrintPageEventArgs e)
            {            
                var img = System.Drawing.Image.FromFile(person[i].Pic);
                Point loc = new Point(400, 100);
                e.Graphics.DrawImage(img, loc);
            };

        pd.Print();
    }
}

即。使用可以访问外部i变量的anonymous method