分类目录
文章索引模板
20090807 c# WebBrowser NewWindow2 - 八月 18, 2009 by yippee

20090807 c# WebBrowser NewWindow2


嵌套WEBBROWSER随便写了个程序,可是新窗口总是弹出IE。


找找资料,可以控制新窗口在本程序中打开,可是本程序又是全屏无菜单的,不想越做越复杂。先记录下吧。


如果你用的是VS2003,WebBrowser控件应该是作为ActiveX控件导入的,在该WebBrowser控件的NewWindow2事件内,有一个 AxSHDocVw.DWebBrowserEvents2_NewWindow2Event参数,你把该参数的ppDisp属性设置为你程序中的 WebBrowser控件的Application即可,这个WebBrowser可以是在另一个窗体内,示例代码如下:


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;
}


   VS2005和2008自带的WebBrowser控件没有这个事件,只有一个NewWindow事件,但该事件的参数CancelEventArgs没有ppDisp属性


在AxWebBrowser中是像下面这样做的,   不知道2.0中这个WebBrowser实现,   难道又是个BUG?  
   
  private   void   axWebBrowser1_NewWindow2(object   sender,   AxSHDocVw.DWebBrowserEvents2_NewWindow2Event   e)  
  {  
  //  
  //   let   the   web   browser   does’t   open   new   window.  
  //  
  e.ppDisp   =   this.axWebBrowser1.Application;  
  }


结论出来了:   又是一个BUG!   (上一个是BackgroundWorker:   http://community.csdn.net/Expert/topic/4707/4707944.xml?temp=.2000391)  
   
  请看feedback中心:  
  http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=c5aa05c2-73ce-40af-b6b1-7b5900cf4e9f  


 


 http://www.codeproject.com/KB/cpp/ExtendedWebBrowser.aspx 


Extended .NET 2.0 WebBrowser Control

标签:, , , , ,