请参阅下面的代码。代码将在此处失败: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);
}
答案 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。