C#WebBrowser:如何将事件处理程序的发件人传递给单独的方法?

时间:2018-01-13 09:34:46

标签: c# eventhandler sender

我想在WebBrowser.DocumentCompleted事件处理程序中调用一些方法,如下所示:

private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
anotherMethodToBeCalled();
}
private void anotherMethodToBeCalled()
{
//doing something which needs to identify the sender 
browser...
}

是的,我当然可以直接将anotherMethodToBeCalled的行为放入WebBrowser1_DocumentCompleted

但我希望将该方法分开,以使代码易于阅读。 这是一个动态的多标签WinForms浏览器,因此特定的发件人浏览器不能通过静态命名。

如何将senderBrowser放入anotherMethodToBeCalled()?

1 个答案:

答案 0 :(得分:0)

你的问题几乎回答了自己:-)。您需要在方法中添加方法参数,并将事件的sender传递给它:

private void WebBrowser1_DocumentCompleted(object sender, 
                                           WebBrowserDocumentCompletedEventArgs e)
{
   AnotherMethodToBeCalled( ( WebBrowser )sender );
}

private void AnotherMethodToBeCalled( WebBrowser browser )
{
   //doing something which needs to identify the sender 
   //browser.DoSomething();
}

触发DocumentCompleted事件的浏览器位于事件处理程序的sender参数中。要获取WebBrowser的实例,您需要将其强制转换为该类型。