WebBrowser Navigating function doesn't work and handlers are not called
Code below.
I am trying to navigate to a website and read information, the problem is
that Navigate doesn't work, the only event that is called is Navigating
and the printed Url is empty, the other events are never called. what am I
missing? do I have to use Form class in order to navigate? can't I use it
programatically from a Console application?
Please help.
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);
}
}
No comments:
Post a Comment