In a previous post, i had published an “Extended Version” of the WebBrowser control
that gave you access to events like the NewWindow2.
This event that is not public in the common WebBrowser control allows you to intercept
the NewWindow event but gives you the posibility to setup the the ppDisp property witch sets
a pointer to the WebBrowser where the new window will be open.
So i setup a small example using this “ExtendedBrowser”.
I created a simple page (well really it was my wife, I know about transport-layer, C++, bits etc, but I never remember HTML syntax):
<html>
<body>
<H1> This is sample page to test opening a pop up in a new form </H1>
<input type="button" onclick="window.open('test0.htm')"/>
</body>
</html>
And created a simple form like in the following picture:
Instead of using a WebBrowser control i just used an ExtendedWebBrowser from my previous post.
And added code like:
private void extendedWebBrowser1_NewWindow2(object sender, NewWindow2EventArgs e)
{
//Intercepting this event will allow us to create a new form in which
//we will open the new webpage, to do that we must set the ppDisp property
//of the NewWindow2EventArgs
FormWithExtendedBrowser form1 = new FormWithExtendedBrowser();
form1.Show();
e.PPDisp = form1.extendedWebBrowser1.Application;
}
When I run the code , it now opens the pop up in my form:
But test if for yourself! :) HERE IS THE CODE