在VB.NET中如何使在Webbrowser中实现标签页中打开新链接

这篇博客介绍了如何在VB.NET应用程序中使用WebBrowser控件处理新窗口打开事件,使得新窗口内容在TabControl的标签页中显示。通过引用shdocvw.dll并设置事件处理函数,实现了在TabPages内加载网页,详细展示了NewWindow3和NewWindow2事件的处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作步骤:
1、在工程中添加COM的Microsoft Internet Controls的引用(这个引用对应的文件是shdocvw.dll,通常在system32目录下)。
2、如下代码:


PublicClassForm1
PrivateSubNewWindow3(ByRefppDispAsObject,ByRefCancelAsBoolean,_
ByValdwFlagsAsUInteger,_
ByValbstrUrlContextAsString,ByValbstrUrlAsString)

DimxPageAsTabPage=NewTabPage
xPage.Text="abcd"
TabControl1.TabPages.Add(xPage)

DimxAsNewWebBrowser
DirectCast(WebBrowser1.ActiveXInstance,SHDocVw.WebBrowser).RegisterAsBrowser=True

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

x.Navigate(bstrUrl)
Cancel=True
EndSub


PrivateSubNewWindow2(ByRefppDispAsObject,ByRefCancelAsBoolean)
DimxPageAsTabPage=NewTabPage
xPage.Text="abcd"
TabControl1.TabPages.Add(xPage)

DimxAsNewWebBrowser
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
EndSub


PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
'在窗体载入后设置Webbrowser的NewWindow3事件处理函数
'AddHandlerDirectCast(WebBrowser1.ActiveXInstance,SHDocVw.WebBrowser).NewWindow3,AddressOfNewWindow3
'如果不是WindowsXPSP2的话需要监控NewWindow2消息
AddHandlerDirectCast(WebBrowser1.ActiveXInstance,SHDocVw.WebBrowser).NewWindow2,AddressOfNewWindow2

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

EndClass


运行程序,可以看到新打开的窗口都会在TabControl1的新标签页abcd中打开.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值