在VB.NET中如何使在Webbrowser中实现标签页中打开新链接
2006-10-02 10:50
711 查看
操作步骤:
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
运行程序,可以看到新打开的窗口都会在TabControl1的新标签页中打开.在上面的代码中,如果是Windows XP+SP2的话可以监控NewWindow3事件,否侧需要监控NewWindow2事件。
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
运行程序,可以看到新打开的窗口都会在TabControl1的新标签页中打开.在上面的代码中,如果是Windows XP+SP2的话可以监控NewWindow3事件,否侧需要监控NewWindow2事件。
相关文章推荐
- vb里面 如何实现 webbrowser控件打开的页面的自动保存呢
- VB.net webbrowser 如何实现自定义下载 IDownloadManager
- [VB.NET]如何打开EXCEL同时得到它的每个标签
- VB.Net WebBrowser如何取得鼠标点击位置的标签
- VB.NET如何实现发送mail 给多个收件者 并带附件
- jquery如何实现自动打开第一个链接!(实例代码)
- 【代码】用div+css实现 在新窗口中打开指定的DIV标签下链接
- 讲解实现VB.NET打开Notes数据库相关详细信息
- [VB.NET]请教: 如何通过继承ToolStrip和ToolStripItem类,实现类似TreeView的分层节点(菜单) 功能 ?
- 如何用C#在Asp.net中实现打开新网页而不关闭当前页
- 如何编程实现VB.NET数据集中的数据导出到EXCEL
- php -- PHP实现点击a标签的href做链接时,直接保存文件(任何类型),而不是通过浏览器直接打开下载的文件
- VB.net 如何在WebBrowser中插入新的内容
- 如何编程实现打开一个链接 ShellExecute()
- [VB.NET源码]11_链接标签
- 如何使用 WebBrowser 控件在 Visual C# 2005 或 Visual C# .NET 中打开 Office 文档
- [VB.NET]如何在DataGridView中实现多列排序?大于2列的,可以有很多列的排序?(急)
- 如何在谷歌浏览器中打开链接在新标签页中打开
- 如何实现经度纬度到平面坐标的相互转换(VB.net)
- 如何实现VB中打开图像文件时的预览功能