Hap*_*ppy 9 c# printing event-handling
我使用下面的代码从我的C#代码打印图像.当我分配我的事件处理程序时,有些正文可以告诉我如何将filePath作为参数传递吗?
public static bool PrintImage(string filePath)
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(printPage);
pd.Print();
return true;
}
private static void printPage(object o, PrintPageEventArgs e)
{
//i want to receive the file path as a paramter here.
Image i = Image.FromFile("C:\\Zapotec.bmp");
Point p = new Point(100, 100);
e.Graphics.DrawImage(i, p);
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 21
最简单的方法是使用lambda表达式:
PrintDocument pd = new PrintDocument();
pd.PrintPage += (sender, args) => DrawImage(filePath, args.Graphics);
pd.Print();
...
private static void DrawImage(string filePath, Graphics graphics)
{
...
}
Run Code Online (Sandbox Code Playgroud)
或者,如果你没有很多工作要做,你甚至可以内联整个事情:
PrintDocument pd = new PrintDocument();
pd.PrintPage += (sender, args) =>
{
Image i = Image.FromFile(filePath);
Point p = new Point(100, 100);
args.Graphics.DrawImage(i, p);
};
pd.Print();
Run Code Online (Sandbox Code Playgroud)