C# webbrowser打开新窗口的问题?

hwj383 2008-07-16 03:26:59
无论是网页设置在父窗口打开还是新窗口(Shift+click)打开,现在要求都要在webbrowser打开.
现在我的做法是做webBrowser控件NewWindow事件
代码如下:
        private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
this.webBrowser1.Navigate(webBrowser1.Url.ToString());
e.Cancel = true;
}

但是这样做后,大部分网页上的链接都失效了,请问有什么好的方法吗?
现在我觉的是Url有问题,跟踪发现有些链接是绝对路径,但是通过上述方法变成相对路径(跳转?!不明白)
...全文
1593 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mtweb 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
需要引用SHDocVw.dll函数
[/Quote]

请问具体怎么引用呢?
powerzzq 2009-02-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hwj383 的回复:]
(this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += new SHDocVw.DWebBrowserEvents2_NewWindow3EventHandler(Form1_NewWindow3);
Exception:未将对像的引用设置到对像的实例

C# codepublic Form4()
{
InitializeComponent();
(this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += new SHDocVw.DWebBrowserEvents2_New…
[/Quote]

this.webBrowser1.Navigate("about:blank");
(this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += new SHDocVw.DWebBrowserEvents2_NewWindow3EventHandler(Form1_NewWindow3);
要先加载this.webBrowser1.Navigate("about:blank"),就不会报错了。

感谢jinjazz,帮了大忙了,可惜不能给你加分:)
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
(this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += new SHDocVw.DWebBrowserEvents2_NewWindow3EventHandler(Form1_NewWindow3);
Exception:未将对像的引用设置到对像的实例
public Form4()
{
InitializeComponent();
(this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += new SHDocVw.DWebBrowserEvents2_NewWindow3EventHandler(Form1_NewWindow3);//exception
}
void Form1_NewWindow3(ref object ppDisp, ref bool Cancel, uint dwFlags, string bstrUrlContext, string bstrUrl)
{
Cancel = true;
this.webBrowser1.Navigate(bstrUrl);
}
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
通过搜索大约发现了20个SHDocVw.dll
大部份存在于C:\windows\$xxxxx下面
一个存在system32下面
DotNetBar里面有两个?
dllcache有一个,您说的是那一个?
jinjazz 2008-07-16
  • 打赏
  • 举报
回复
应该在system32目录下有
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jinjazz 的回复:]
需要引用SHDocVw.dll函数
[/Quote]
在那里呢?没有找到呢?
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
有newWindow2现在又冒出个newwindow3?!
痛苦ing
jinjazz 2008-07-16
  • 打赏
  • 举报
回复
需要引用SHDocVw.dll函数
jinjazz 2008-07-16
  • 打赏
  • 举报
回复
参考
http://blog.csdn.net/jinjazz/archive/2007/11/24/1901192.aspx

这个需要用到NewWindow3 事件。

110,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧