所以我只想尝试将MyReader传递给EventHandler函数。我知道我必须使用“=>”运算符,但我仍然会遇到错误。这是我的代码:
private void PrintButton_Click(object sender, RoutedEventArgs e)
{
StringReader MyReader= new StringReader(StrTxt);
PD.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
}
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
}
答案 0 :(得分:4)
将其用作发件人和eventargs的附加参数:
PD.PrintPage += (sender, ev) => this.pd_PrintPage(sender, ev, MyReader);
//...
private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
{
//...
}
您在括号中指定PD.PrintPage
包含{({1}})的参数,然后在object sender, PrintPageEventArgs ev
运算符后指定要使用的函数。
答案 1 :(得分:0)
如果要传递额外的对象,则需要将它们公开为参数:
private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
{
}
然后你可以使用:
PD.PrintPage += (sender, args) => this.pd_PrintPage(sender, args, MyReader);
请注意, 要使用=>在这里,但是是:以这种方式执行它是方便。还有至少两种其他方式可以更详细地做同样的事情。