Foxtable(狐表)用户栏目专家坐堂 → [求助]在VB.NET中如何使在Webbrowser中实现标签页中打开新链接


  共有4506人关注过本帖树形打印复制链接

主题:[求助]在VB.NET中如何使在Webbrowser中实现标签页中打开新链接

帅哥哟,离线,有人找我吗?
jyh7081
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]在VB.NET中如何使在Webbrowser中实现标签页中打开新链接  发帖心情 Post By:2017/4/7 16:32:00 [只看该作者]

我想在Webbrowser中实现标签页,按照原帖说明shdocvw.dll放到foxtable安装目录下,在全局代码中添加代码保存时,弹出“试图加载不正确的程序”。
我这样做对不对?
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目2.table

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:shdocvw.rar


------------------
原帖地址:http://www.cnblogs.com/technofantasy/archive/2006/10/02/520041.html
操作步骤:
1、在工程中添加COM的Microsoft Internet Controls的引用(这个引用对应的文件是shdocvw.dll,通常在system32目录下)。
2、添加如下代码:
Public Class Form1
    
Private Sub NewWindow3(ByRef ppDisp As ObjectByRef Cancel As Boolean, _
            
ByVal dwFlags As UInteger, _
            
ByVal bstrUrlContext As StringByVal bstrUrl As String)

        
Dim xPage As TabPage = New TabPage
        xPage.Text 
= "abcd"
        TabControl1.TabPages.Add(xPage)

        
Dim x As New WebBrowser
        
DirectCast(WebBrowser1.ActiveXInstance, SHDocVw.WebBrowser).RegisterAsBrowser = True

        xPage.Controls.Add(x)
        x.Dock 
= DockStyle.Fill
        x.Visible 
= True

        x.Navigate(bstrUrl)
        Cancel 
= True
    
End Sub


    
Private Sub NewWindow2(ByRef ppDisp As ObjectByRef Cancel As Boolean)
        
Dim xPage As TabPage = New TabPage
        xPage.Text 
= "abcd"
        TabControl1.TabPages.Add(xPage)

        
Dim x As New WebBrowser
        
DirectCast(WebBrowser1.ActiveXInstance, SHDocVw.WebBrowser).RegisterAsBrowser = True

        xPage.Controls.Add(x)
        x.Dock 
= DockStyle.Fill
        x.Visible 
= True
        x.Navigate(
"about:blank")

        ppDisp 
= x.ActiveXInstance 'DirectCast(x.ActiveXInstance, SHDocVw.WebBrowser).Application
        'Cancel = True
    End Sub


    
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        
'在窗体载入后设置Webbrowser的NewWindow3事件处理函数
        'AddHandler DirectCast(WebBrowser1.ActiveXInstance, SHDocVw.WebBrowser).NewWindow3, AddressOf NewWindow3
        '如果不是Windows XP SP2的话需要监控NewWindow2消息
        AddHandler DirectCast(WebBrowser1.ActiveXInstance, SHDocVw.WebBrowser).NewWindow2, AddressOf NewWindow2

        WebBrowser1.Navigate(
"http://www.applevb.com")
    
End Sub

End Class

运行程序,可以看到新打开的窗口都会在TabControl1的新标签页中打开.在上面的代码中,如果是Windows XP+SP2的话可以监控NewWindow3事件,否侧需要监控NewWindow2事件。


 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2017/4/7 18:04:00 [只看该作者]

mark 模拟浏览器

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:模拟浏览器.zip


 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/5/13 21:09:00 [只看该作者]

附件的内部函数中,页签显示的"新页面",怎样改成显示打开的是网页名称 。就是网页代码  <t itle>XXX</t itle>  中的 xxx

 

Dim web As new windows.Forms.webbrowser
Dim tab = frm.controls("TabControl1")
Dim btab = frm.controls("TabControl1").BaseControl
Dim pname As String = "page" & tab.tabpages.count
Dim np = tab.tabpages.add(pname, "新页面")
web.Dock = 5
btab.tabpages(pname).controls.add(web)
tab.SelectedPage = np
web.ScriptErrorsSuppressed = True
AddHandler DirectCast(web.ActiveXInstance, SHDocVw.WebBrowser).NewWindow3, AddressOf NewWindow3
addhandler web.NewWindow, addressof web_NewWindow
'cancel = True
web.navigate(url)

XXX[此贴子已经被作者于2017/5/13 21:53:29编辑过]


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/15 10:35:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:模拟浏览器.zip


 回到顶部
帅哥哟,离线,有人找我吗?
zoudezhao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:409 积分:3723 威望:0 精华:0 注册:2017/6/9 18:02:00
  发帖心情 Post By:2018/11/25 15:09:00 [只看该作者]

实例打开没反应怎么办。。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/25 16:39:00 [只看该作者]

以下是引用zoudezhao在2018/11/25 15:09:00的发言:
实例打开没反应怎么办。。

 

我测试没问题。请认真测试。有什么现象,报什么错?


 回到顶部