This is just a simple web browser form but can check the navigated URL using delegates. First off, we create the web browser form.
Code:
public WebBrowserForm(string url)
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
Navigate(url);
toolStripButton1.Click += delegate { webBrowser1.GoBack(); };
toolStripButton2.Click += delegate { webBrowser1.GoForward(); };
toolStripButton3.Click += delegate { webBrowser1.Stop(); };
toolStripButton4.Click += delegate { webBrowser1.Refresh(); };
webBrowser1.Navigated += delegate(object sender, WebBrowserNavigatedEventArgs e) {
OnNavigated(e);
};
}
public void Navigate(string url)
{
webBrowser1.Navigate(url);
}
protected virtual void OnNavigated(WebBrowserNavigatedEventArgs e)
{
if (Navigated != null) {
Navigated(this, e);
}
}
public event WebBrowserNavigatedEventHandler Navigated;
Then we'll use it like
Code:
webBrowserFormTestToolStripMenuItem.Click += delegate {
WebBrowserForm form = new WebBrowserForm(Path.Combine(ApplicationUtility.RootDirectory, "home.html"));
form.Navigated += delegate(object sender, WebBrowserNavigatedEventArgs e) {
string fileName = Path.GetFileName(e.Url.ToString());
switch (fileName) {
case "home.html#about":
AddDialog(new AboutForm());
break;
}
};
AddChild(form);
};
So this is somewhat useful when having an internal browser on your form and wanted to check the navigated url to show another form of your application. Just a simple app though but hope someone might find this useful. Thanks!