Click here to Skip to main content
Click here to Skip to main content

Using ExecWB with the native .NET 2.0 WebBrowser control

, 17 Jun 2008
Rate this:
Please Sign up or sign in to vote.
How to zoom the standard WebBrowser control by accessing ExecWB.

Introduction

One of the most annoyingly interesting components within the VB.NET 2008 environment is the WebBrowser control (or class, if you prefer) that is bundled as standard. It exposes a number of common methods and properties, but lacks one of the most useful elements that can be found in the full-blown web browser (a.k.a. SHDocVw or Ieframe.dll) version, namely the ExecWB command. The following class provides a simple example of how to harness the power of ExecWB from the System.Windows.Forms.WebBrowser class.

Background

This solution came about as I researched using the WebBrowser control and stumbled into the complex world of variations on a theme. Why all of this power couldn't be harnessed in a single solution is beyond me. However, my mission is to continue simplifying a unified theory of everything (relating to the Microsoft WebBrowser).

Using the code

  1. Create a new project in VB.NET 2008
  2. Display your form in design mode
  3. Add a standard WebBrowser control, dragging it from the toolbox onto the form
  4. Change the WebBrowser's URL property in the propertygrid to something like this: http://www.codeproject.com
  5. Add a Button control from the toolbox onto the form
  6. Change the Text property of the Button from Button1 to Zoom
  7. Switch to the source code edit mode
  8. Replace the code, which should look like this:
Class Form1

End Class

with the following code:

Public Class Form1
Private Enum Exec
  OLECMDID_OPTICAL_ZOOM = 63
End Enum
Private Enum ExecOpt
  OLECMDEXECOPT_DODEFAULT = 0
  OLECMDEXECOPT_PROMPTUSER = 1
  OLECMDEXECOPT_DONTPROMPTUSER = 2
  OLECMDEXECOPT_SHOWHELP = 3
End Enum
Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
  Try
    Dim Res As Object = Nothing
    Dim MyWeb As Object
    MyWeb = Me.WebBrowser1.ActiveXInstance
    MyWeb.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, _
          ExecOpt.OLECMDEXECOPT_DONTPROMPTUSER, 50, IntPtr.Zero)
  Catch ex As Exception
    MsgBox("Error:" & ex.Message)
  End Try
 End Sub
End Class

Points of interest

The code above only shows the enumeration for zooming a web page. To make use of all of the OLECMDID enumeration commands, simply add them to the Enum Exec shown above. You can find all the available enumerations at MSDN.

History

This is the first release of this solution. If anyone has suggestions on how to make it shorter, let me know.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Rocco Labellarte
Chief Technology Officer Vobis Consulting Ltd
United Kingdom United Kingdom
I've been around since the beginning of time (well, nearly fifty years anyway), and I've enjoyed programming since the days of DOS 1.0 with assembly language, MS-BASIC, GW-BASIC, QuickBASIC, Visual BASIC and now VB.NET.

Comments and Discussions

 
General'%' of zoom PinmemberIPS Company13-Sep-08 9:50 
GeneralRe: '%' of zoom PinmemberJared James Sullivan20-Jan-09 15:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web03 | 2.8.140721.1 | Last Updated 17 Jun 2008
Article Copyright 2008 by Rocco Labellarte
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid