2008-10-20 26 views
1

我的C#应用​​程序包含一个嵌入式Web浏览器,该类由System.Windows.Forms.WebBrowser类实现。用户可以使用应用程序导航到网站,但是,当他们遇到包含弹出窗口的页面时,弹出窗口将由Internet Explorer打开。使用WebBrowser类时的好奇弹出行为

有谁知道如何抑制这种行为?

注意:我是C#的新手,所以请在回应时考虑这一点。

回答

4

您是否正在寻找积极阻止弹出窗口或在您的应用程序处理?如果你想自定义阻塞,那么你必须实现DWebBrowserEvents2 interface,特别是NewWindow3 method。 NewWindow3方法具有阻止窗口弹出窗口的特定功能(即将Cancel参数设置为true)。如果您愿意,这些方法也可以让您显示自己的窗口,但您必须提供自己的窗体来托管另一个WebBrowser。

如果你想看到一些真正的C#源代码提供WebBrowser控件的高级功能,我不得不说,this article on CodeProject提供了几乎所有我知道的有关WebBrowser控件。一定要下载源码!

@克拉米是正确的,你也可以使用NewWindow2事件来防止弹出。 NewWindow3提供了额外的参数,如果你想检查URL或其他有关导航的数据实际上有时会阻止并有时自己处理弹出窗口。