The code is below.
I try to go to the website and read the information, the problem is that Navigate is not working, the only event that is being fired is "Navigation", and the printed Url is empty, other events are never fired. What am I missing? Do I need to use the Form class for navigation? Can I use it programmatically 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); } }
Nizar Blond Aug 25 '13 at 11:44 2013-08-25 11:44
source share