Your own custom browser !!
There are many questions on
discussion forums about creating a web browser or using existing web browser
ActiveX control in C# or VB.NET. This article explains how to add and web
browser ActiveX to your project to developer your own customized web
browser.
I wonder why Microsoft
didn't add a class to provide browser functionality. If they did, then I'm not
aware of it. Any way .. In this article we'll use existing Web Browser
control.
Adding Web Browser ActiveX
Create a Windows
application and right, right click on toolbox window, and select "Customize
Toolbox". In COM components, you'll see "Microsoft Web Browser" component an dll
is "Schdocvw.dll".
Clicking OK button adds
"Explorer" control to your toolbox. See toolbox below.
Now you drag this
"Explorer" control to your form. The default name of the control is
"axWebBrowser1".
Designing GUI
Now I add a toolbar with
few buttons on it. You can see my toolbars tutorial to see how to add toolbar
buttons, load images and write event handlers for toolbar buttons.
Besides toolbar, I also
add a URL text box, a button and organize my form so it would look like the
below fig.
Home, Previous, Next,
Stop, and Refresh toolbar buttons are self-explanatory and provides same
functionality as a browser does. Go button loads the specified URL in the
browser control.
Writing
Code
Now I write the code on
"Go button" click and toolbar buttons. In a moment, you'll see how you can
customize your own browser writing few lines of code. The Navigate method of
browser control views a page in the viewer. Other methods are pretty simple and
self explanatory such as GoHome, Stop, Refresh, GoBack and GoForward.
Source Code: C#
private void
button1_Click_1(object sender, System.EventArgs
e) { System.Object nullObject = 0; string str = ""; System.Object nullObjStr =
str; Cursor.Current =
Cursors.WaitCursor; axWebBrowser1.Navigate(textBox1.Text, ref nullObject, ref nullObjStr,
ref nullObjStr, ref
nullObjStr); Cursor.Current = Cursors.Default; }
|
Here is code for toolbar
button click.
private void
toolBar1_ButtonClick(object sender,
System.Windows.Forms.ToolBarButtonClickEventArgs e) { if ( e.Button == tb1
) { axWebBrowser1.GoHome(); } if (
e.Button == tb2 ) { axWebBrowser1.Refresh(); } if ( e.Button == tb3
) { axWebBrowser1.GoBack(); } if (
e.Button == tb4 ) { axWebBrowser1.GoForward(); } if ( e.Button == tb5
) { axWebBrowser1.Stop(); } }
|
Source Code: VB.NET
VB.NET code is nothing
else but a conversion of C# code. Here is the code navigates the URL using Web
Browser's Navigate method.
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles Button1.Click
Dim nullObject As System.Object =
0 Dim str As String = "" Dim nullObjStr
As System.Object = str Cursor.Current =
Cursors.WaitCursor AxWebBrowser1.Navigate("http://www.microsoft.com",
nullObject, nullObjStr, nullObjStr, nullObjStr) Cursor.Current =
Cursors.Default End Sub
|
You can call Stop,
GoHome, Refresh, GoForward and other methods in the same way we did in C#
code.
The Application
The GUI of the program
looks like the following image. Go button navigates the URL and other buttons
are pretty
self-explanatory.