我试图使用WebBrowser控件来启动弹出窗口的新窗体,而不是在IE中打开它.我试图使用AxWebBrowser来获取与NewWindow3事件一起工作的弹出窗口e.ppDisp = AxWebBrowser.Application,但是AxWebBrowser有许多限制.因此,我试图扩展普通的WebBrowser以包含像AxWebBrowser一样的NewWindow3事件但遇到问题.随着e.ppDisp = AxWebBrowser.Application我得到的错误:"InvalidVariant检测",其次是"指定的OLE变量无效"如果我继续.
注意:这是我第一次扩展课程,所以我可能会看到一些简单的东西.如果我尝试在新窗口中导航到新URL,我会从站点获取java脚本错误.
我已根据评论更新了代码库.已经删除了ExtendedWebBrowser类,以获得更小更好的版本.这是新代码:
从主窗体和一个非常相似的BrowserPopup表单 -
Protected Overrides Sub OnLoad(ByVal e As EventArgs)
MyBase.OnLoad(e)
nativeBrowser = DirectCast(ExtendedWebBrowser1.ActiveXInstance, SHDocVw.WebBrowser)
AddHandler nativeBrowser.NewWindow3, AddressOf nativeBrowser_NewWindow3
AddHandler nativeBrowser.WindowClosing, AddressOf nativeBrowser_WindowClosing
End Sub
Private Sub nativeBrowser_NewWindow3(ByRef ppDisp As Object, ByRef Cancel As Boolean, ByVal dwflags As UInteger, ByVal bStrUrlContext As String, ByVal bstrUrl As String)
Dim popup = New BrowserPopup()
popup.Show(Me)
popup.browserPop.DocumentText = bStrUrlContext
ppDisp = popup.browserPop.ActiveXInstance
End Sub
Private Sub nativeBrowser_WindowClosing(ByVal IsChildWindow As Boolean, ByRef Cancel As …Run Code Online (Sandbox Code Playgroud) browser webbrowser-control axwebbrowser popupwindow vb.net-2010