C# WebBrowser:如何将事件处理程序的发送者传递给单独的方法?
C# WebBrowser: How to pass eventhandler's sender to a separate method?
我想在 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() 中?
您的问题几乎可以自行解答:-)。您需要在您的方法中添加一个方法参数,并将事件的 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
的实例,您需要将其转换为该类型。
我想在 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() 中?
您的问题几乎可以自行解答:-)。您需要在您的方法中添加一个方法参数,并将事件的 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
的实例,您需要将其转换为该类型。