代码如下。
我正在尝试导航到网站并阅读信息,问题是导航不起作用,唯一调用的事件是导航并且打印的 Url 为空,其他事件永远不会被调用。我错过了什么?我必须使用 Form 类才能导航吗?我不能从控制台应用程序以编程方式使用它吗?
请帮忙。
class WebNavigator
{
private readonly WebBrowser webBrowser;
public WebNavigator()
{
webBrowser = new WebBrowser
{
AllowNavigation = true
};
webBrowser.Navigated += webBrowser_Navigated;
webBrowser.Navigating += webBrowser_Navigating;
webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;
}
// Navigates to the given URL if it is valid.
public void Navigate(string address)
{
if (String.IsNullOrEmpty(address)) return;
if (address.Equals("about:blank")) return;
if (!address.StartsWith("http://") &&
!address.StartsWith("https://"))
{
address = "http://" + address;
}
try
{
Trace.TraceInformation("Navigate to {0}", address);
webBrowser.Navigate(new Uri(address));
}
catch (System.UriFormatException)
{
Trace.TraceError("Error");
return;
}
}
// Occurs when the WebBrowser control has navigated to a new document and has begun loading it.
private void webBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
Trace.TraceInformation("Navigated to {0}", webBrowser.Url);
}
// Occurs before the WebBrowser control navigates to a new document.
private void webBrowser_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
Trace.TraceInformation("Navigating to {0}", webBrowser.Url);
}
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var wb = sender as WebBrowser;
Trace.TraceInformation("DocumentCompleted {0}", wb.Url);
}
}