0

所以我只是试图将 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)
     {
     }
4

2 回答 2

4

将其用作发送者和事件参数的附加参数:

PD.PrintPage += (sender, ev) => this.pd_PrintPage(sender, ev, MyReader);

//...

private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
{
    //...
}

您在括号中指定参数PD.PrintPageobject sender, PrintPageEventArgs ev),然后在运算符之后指定要使用的函数=>

于 2013-07-12T17:29:47.543 回答
0

如果你想传入额外的对象,你需要将它们作为参数公开:

private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
 {
 }

然后你可以使用:

 PD.PrintPage += (sender, args) => this.pd_PrintPage(sender, args, MyReader);

请注意,您不必这里使用 =>,但是可以:这样做很方便。至少有两种其他方法可以更详细地完成同一件事。

于 2013-07-12T17:33:13.937 回答