Using Web Browser options in C# in VB.NET

This article tells how to create a Web Browser in VB.NET.
  • 5170
 

I wrote this article in Sept 2001 in response to a question on discussion forums - how to create a Web Browser in C#? Recently, I got a question on how to use Browser's Save As option programmatically. This article explains how to use Web Browser ActiveX to your project to developer your own customized Web Browser and use its options.
FYI: Visual Studio 2005 already provides a Windows Forms Web Browser control. Read my article here. 
Windows Forms 2.0 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".

WebBro.jpg

Clicking OK button adds "Explorer" control to your toolbox. See toolbox below.

WebBro5.gif

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.

WebBro6.gif

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: VB.NET.

 

Private Sub button1_Click_1(ByVal sender As Object, ByVal e As System.EventArgs)

Dim nullObject As System.Object = 0
Dim str As String = ""
Dim nullObjStr As System.Object = str
Cursor.Current = Cursors.WaitCursor
axWebBrowser1.Navigate(textBox1.Text, nullObject, nullObjStr, nullObjStr, nullObjStr)
Cursor.Current = Cursors.Default
End Sub 'button1_Click_1

Here is code for toolbar button click.

Private Sub toolBar1_ButtonClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs)

If e.Button = tb1 Then
axWebBrowser1.GoHome()
End If
If
e.Button = tb2 Then
axWebBrowser1.Refresh()
End If
If
e.Button = tb3 Then
axWebBrowser1.GoBack()
End If
If
e.Button = tb4 Then
axWebBrowser1.GoForward()
End If
If
e.Button = tb5 Then
axWebBrowser1.Stop()
End If
End
Sub 'toolBar1_ButtonClick

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.

WebBro7.jpg

Using Save As and other Browser Options.

There are requirements when you may want to use Save, Save As, Print or other browser options. Web Browser ActiveX control supports all these options and you use them by using WebBrowser.ExecWB method. This method takes parameters of command type and prompt user.

The following code shows how to use Browser's SaveAs option programmatically.

 

Private Function IsSaveAsAvailable() As Boolean

Dim response As Integer = CInt(axWebBrowser1.QueryStatusWB(SHDocVw.OLECMDID.OLECMDID_SAVEAS))Return(If(response And CInt(SHDocVw.OLECMDF.OLECMDF_ENABLED)) <> 0 Then True Else False) 'ToDo: Unsupported feature: conditional (?) operator.

End Function 'IsSaveAsAvailable

Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim nullObject As System.Object = 0
Dim str As String = ""
Dim nullObjStr As System.Object = str
Cursor.Current = Cursors.WaitCursor
axWebBrowser1.Navigate("https://www.fededirectory.frb.org/filename.txt", nullObject, nullObjStr, nullObjStr, nullObjStr)
Dim o As Object = "" whileIsSaveAsAvailable() '
'ToDo: Error processing original source shown below

'-------------------------^--- Syntax error: ';' expected
If (True) Then
axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_SAVEAS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER, nullObjStr, nullObjStr)
End If

Cursor.Current = Cursors.Default

End Sub 'button1_Click

Categories

More Articles

© 2020 DotNetHeaven. All rights reserved.