Reputation: 111
So simply I am trying to pass MyReader into the EventHandler function. I know I have to use the " => " operator, but I still get errors. Here's my code:
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)
{
}
Upvotes: 0
Views: 180
Reputation: 1063068
If you want to pass in extra objects, you'll want to expose them as parameters:
private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
{
}
Then you can use:
PD.PrintPage += (sender, args) => this.pd_PrintPage(sender, args, MyReader);
Note that you don't have to use => here, but yes: it is convenient to do it that way. There are at least two other ways of doing the same thing more verbosely.
Upvotes: 0
Reputation: 5846
Use it as an additional argument to the sender and the eventargs:
PD.PrintPage += (sender, ev) => this.pd_PrintPage(sender, ev, MyReader);
//...
private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
{
//...
}
You specify the arguments PD.PrintPage
has (object sender, PrintPageEventArgs ev
) in the parentheses, and then the function you want to use after the =>
operator.
Upvotes: 4