How to use the WebBrowser control NewWindow2 event in Visual C#

Article translations Article translations
Article ID: 815714 - View products that this article applies to.
For a Visual Basic .NET version of this article, see 311282.

For a Visual Basic 6.0 version of this article, see 184876.
Expand all | Collapse all

On This Page

SUMMARY

This article describes how to use the NewWindow2 event that is triggered by the Microsoft WebBrowser control that is included with Microsoft Internet Explorer 4.0 and later. You can use this event to specify that your browser program is used whenever a new browser window is opened. This article describes this procedure for Visual C#.

The NewWindow2 Event

The NewWindow2 event occurs when a new window is created to display a resource. This event comes before a new window is created from the WebBrowser control (for example, in response to a navigation that is targeted to a new window or to a scripted window.open method).

To specify that your browser program is used whenever a new window is opened, set ppDisp equal to a new WebBrowser object that is contained in a new window that is created by your program. In this scenario, if a user chooses to open a Web page in a new window, the new window in your program is used to display the new Web page.

Additionally, set the RegisterAsBrowser property to true for the new WebBrowser control for the control to participate in window-name resolution. For example, if the window name is used elsewhere in the script, this control is used instead of a newly created one because the control checks all the existing window names before opening a new window.

Create the Project and Add Code

The following sample directs the WebBrowser control to the following Web site:
http://www.microsoft.com
  1. Start Microsoft Visual Studio.
  2. Create a new Visual C# Windows Forms Application project.
  3. In the toolbox, click the General panel.
  4. Right-click the open panel, and then click Choose Items.
  5. Click the COM Components tab, click to select the Microsoft Web Browser check box, and then click OK.
  6. In the toolbox, double-click the newly added Microsoft Web Browser control to add it to your form.
  7. Add a button control and a text box control to your form.
  8. Double-click the button to view the implementation of the onClick event in the code window. Add the following code that will navigate to the URL that is specified in the text box:
    private void button1_Click(object sender, System.EventArgs e)
    {
       object obj = null;
       axWebBrowser1.Navigate(textBox1.Text, ref obj, ref obj, ref obj, ref obj);
    }
  9. In Solution Explorer, right-click Form1, and then click View Designer. Right-click the axWebBrowser1 control, and then click Properties. Click the Events icon, and then double-click NewWindow2 to add an event handler for the NewWindow2 event. Add the following code to NewWindow2 event:
    private void axWebBrowser1_NewWindow2(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow2Event e)
    {
       Form1 frmWB;
       frmWB = new Form1();
    
       frmWB.axWebBrowser1.RegisterAsBrowser = true;
       e.ppDisp = frmWB.axWebBrowser1.Application;
       frmWB.Visible = true;
    }

Verification

  1. Start Notepad, and then save the following text as Test.htm on your Web server:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    <TITLE>Q311282</TITLE>
    
    <SCRIPT type = "text/Jscript">
         function openWin()
         {
              var win;
              win = window.open("http://www.microsoft.com");
         }
    </SCRIPT>
    </HEAD>
    <BODY>
    
    <button onClick="openWin()">Open New Window</button>
    
    </BODY>
    </HTML>
  2. In Visual Studio, click the Start button on the Debug menu to run the application.
  3. Form1 appears. Change the text in the text box to the URL of the Test.htm page.
  4. Click button1.
  5. Test.htm appears in the WebBrowser control. Click Open New Window. Note that the Microsoft Web page opens in a new instance of the program.

REFERENCES

For more information about the WebBrowser control and the methods, properties, and events that it exposes, see the WebBrowser documentation at the following (Microsoft Developer Network) MSDN Web site:
WebBrowser Control
http://msdn.microsoft.com/en-us/library/2te2y1x6.aspx

Properties

Article ID: 815714 - Last Review: July 30, 2008 - Revision: 5.1
APPLIES TO
  • Microsoft Internet Explorer (Programming) 6.0
  • Microsoft Internet Explorer (Programming) 5.5 SP2
  • Microsoft Internet Explorer 5.5
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005 Express Edition
Keywords: 
kbsweptvs2008 kbwebbrowser kbctrl kbbutton kbnamespace kbprogramming kbhowtomaster KB815714

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com