操作步骤:
1、在工程中添加COM的Microsoft Internet Controls的引用(这个引用对应的文件是shdocvw.dll,通常在system32目录下)。
2、添加如下代码:
1、在工程中添加COM的Microsoft Internet Controls的引用(这个引用对应的文件是shdocvw.dll,通常在system32目录下)。
2、添加如下代码:
Public Class Form1
Private Sub NewWindow3(ByRef ppDisp As Object, ByRef Cancel As Boolean, _
ByVal dwFlags As UInteger, _
ByVal bstrUrlContext As String, ByVal 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 Object, ByRef 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
Private Sub NewWindow3(ByRef ppDisp As Object, ByRef Cancel As Boolean, _
ByVal dwFlags As UInteger, _
ByVal bstrUrlContext As String, ByVal 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 Object, ByRef 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事件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix