当前位置:首页 > 计算机相关 > .net专区 > 正文内容

C#实现 WebBrowser中新窗口打开链接用默认或者指定浏览器打开,不用IE

piikee12年前 (2012-10-28).net专区1297
首先要捕获打开链接的事件,这个事件在 WebBrowser的NewWindow里面。
这里我的WebBrowser命名为announce。所以捕获事件如下:
private void announce_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true ;//让webbrowser停止默认执行事件,让它不会用IE打开链接了
WebBrowser senderb = (WebBrowser)sender;//把sender给拿下,是一个WebBrowser对象
openUrl(senderb.StatusText);//StatusText即是要打开的新链接地址,把这个地址交给openUrl函数来搞定吧
}
openURL函数得到新链接,进行打开操作啦。函数如下:
private void openUrl(string url)
{
try
{
RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command\");//获取系统中的浏览器
string s = key.GetValue("").ToString();
Regex reg = new Regex("\"([^\"]+)\"");
MatchCollection matchs = reg.Matches(s);
string filename = "";
if (matchs.Count > 0)
{
filename = matchs[0].Groups[1].Value;//取默认浏览器
System.Diagnostics.Process.Start(filename,url);
}
else
{
System.Diagnostics.Process.Start(url);//取不到默认浏览器就用IE了。。
}
}
catch { }
}
以上openURL函数你就可以实现各种操作啦,不一定要用我的操作哈。发现网上还没人有这解决办法,所以转载请注明来自www.piikee.net萍客小居哦。

扫描二维码推送至手机访问。

版权声明:本文由萍客小居[www.piikee.net]发布,如需转载请注明出处。

本文链接:https://www.piikee.net/971.html

分享给朋友:

相关文章

标签和

首先,他们都主要应用于样式表,功能是相似的。但是,<code><span></code>是行级元素,也就是说内部的元素不另起一行进行渲染,而<code><div></code...

SQL卸载重装遇到实例名重复,实例名删不掉的问题

Sql2005卸载后,在重新安时会碰到以前安装的实例名还在的问题,然后如果自定义实例名一样的话会报错说实例名重复。那么怎样删除以前的那些实例名呢?首先,确认你把所有SQL相关程序都卸载了。然后,删除C:\Program Files\Micr...

SQL语句重命名数据库表和表中的列

A.   重命名表将表   oldTableName  重命名为  newTableName :EXEC   sp_rename   'oldTableName','newTableName'B.   重命名列将表 EMIS  中的列  ...

AjaxControlToolkit中各个控件功能说明

1.Accordion控件1.1【功能概述】Accordion可以让你设计多个panel 并且一次只显示一个Panel .在页面上的显示效果就像是使用了多个CollapsiblePanels只不过每一次只展开其中一个CollapsibleP...

AjaxControlToolKit中 CalendarExtender(日历扩展控件)变为中文界面

ScriptManager控件的EnableScriptGlobalization属性 和EnableScriptLocalization属性设置为 true则  CalendarExtender 控件为中文...

C#的窗体(WinForm)退出杂谈

1、Winform点击退出按钮,需要确认再退出:private void MainForm_FormClosing(object sender, FormClosingEventArgs e){if (MessageBox.Show("是否...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。