C# webBrowser控件使用
C# webBrowser控件使用心得
最近用到WebBrowser控件,遇到很多问题,也学习了不少新的东西。下面是我在C#下写的关于WebBrowser控件使用的代码。
1、WebBrowser常用属性
.Refresh();//刷新
.GoBack();//后退
.GoForward();//前进
.Navigate(new Uri(address)); //打开链接
.Dock = DockStyle.Fill; //完全停靠在父容器中
.ScriptErrorsSuppressed = true ; //关闭错误显示
Uri a = new Uri(WebBrowser.Document.ActiveElement.GetAttribute("href"));//获取点击中的链接地址
2、WebBrowser常用事件处理
.Navigated += new WebBrowserNavigatedEventHandler(WebBrowser_Navigated);//加载中处理事件
.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser _DocumentCompleted);//页面加载完成处理事件
.NewWindow += new CancelEventHandler(WebBrowser _NewWindow);//新的窗口中打开页面
3、事件处理函数
3.1、打开新连接
// Navigates to the given URL if it is valid.
private void Navigate(WebBrowser web,String address)
{
if (String.IsNullOrEmpty(address)) return;
if (address.Equals("about:blank")) return;
if (!address.StartsWith("http://")) address = "http://" + address;
try
{
WebBrowser.Navigate(new Uri(address));
}
catch (System.UriFormatException)
{
return;
}
// Updates the URL in TextBoxAddress upon navigation.
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
toolStripTextBox1.Text = WebBrowser.Url.ToString();
}
}
3.2、新窗口处理
private void WebBrowser_NewWindow(object sender, CancelEventArgs e)
{
WebBrowser webb = new WebBrowser();
WebBrowser = WebBrowsers[webtab.SelectedIndex];
webb.Name = "webb" + webtab.TabCount;
Uri a = new Uri(WebBrowser.Document.ActiveElement.GetAttribute("href"));
webb.Url = a;
webb.Dock = DockStyle.Fill;
TabPage p = new TabPage();
p.Controls.Add(webb);
webtab.TabPages.Add(p);
webtab.SelectedTab = p;
webb.NewWindow += new CancelEventHandler(WebBrowser_NewWindow);
e.Cancel = true;//取消在默认浏览器中打开
}
3.3、用户自动登陆处理
#region 用户自动登陆
private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
HtmlDocument log_auto = WebBrowser.Document;
HtmlElement log_btn = null;
foreach (HtmlElement em in log_auto.All) //轮循
{
string str = em.Name;
string id = em.Id;
if ((str == "username") || (str == "password") || (str == "submit")) //减少处理
{
switch (str)
{
case "username": em.SetAttribute("value", usernamexml);
break; //赋用户名
case "password": em.SetAttribute("value", userpasswordxml );
break; //赋密码
case "submit": log_btn = em;
break; //获取submit按钮
default:
break;
}
}
}
log_btn.InvokeMember("click"); //触发submit事件
}
#endregion
转自:http://www.cnblogs.com/lujin49/archive/2012/06/27/2566119.html
C# webBrowser控件使用的更多相关文章
- C#中的WebBrowser控件的使用
0.常用方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(st ...
- delphi WebBrowser控件上网页验证码图片识别教程(一)
步骤一:获取网页中验证码图片的url地址 在delphi中加入一个BitBtn和一个memo以及WebBrowser控件实现网页中验证码图片的url地址的获取 程序如下:procedure TForm ...
- <总结>delphi WebBrowser控件的使用中出现的bug
Delphi WebBrowser控件的使用中出现的bug: 1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...
- C# WebBrowser控件使用教程与技巧收集
常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(strin ...
- C# 指定Webbrowser控件所用IE内核版本
如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe,以64位机 ...
- 在WPF的WebBrowser控件中屏蔽脚本错误的提示
在WPF中使用WebBrowser控件显示网页时,经常会报脚本错误的提示,如何屏蔽掉这些错误提示呢.方法是定义如下方法: public void SuppressScriptErrors(WebBro ...
- 修改WebBrowser控件的内核解决方案
方法一 加入你想让WebBrowser控件的渲染模式编程IE8的标准模式, 你可以通过设置注册表FEATURE_BROWSER_EMULATION 来实现. 示例: 注册表中注明当前本机装的IE版本H ...
- WebBrowser控件打开https站点
背景: 与上一篇博文一样,此文亦是由于开发DropboxAPI中遇到问题衍生出来的.由于需要重定向https类型网站,但自己的https证书是自签名的,总是提示'网站的安全证书存在问题'. 鉴此,查了 ...
- C++(MFC)中WebBrowser去除3D边框的方法(实现IDocHostUIHandler接口)控制 WebBrowser 控件的外观和行为
在 CSDN 上经常看到以下两个问题:1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 CHtmlView 在内),如何可以把该控件的三维边框禁止掉?2.在 MFC 应用程 ...
随机推荐
- 【PHP面向对象(OOP)编程入门教程】8.构造方法__construct()与析构方法__destruct()
大多数类都有一种称为构造函数的特殊方法.当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法.构 造函数的声明与其它操作的声明一样,只是其名称必须是__ ...
- Python-Matplotlib安装及简单使用
在使用NumPy进行学习统计计算时是枯燥的,大量的数据令我们很头疼,所以我们需要把它图形化显示. Matplotlib是一个Python的图形框架,类似于MATLAB和R语言. Matplotlib的 ...
- Javascript高级程序设计——执行环境与作用域
Javascript中执行环境是定义了变量或函数有权访问的其他数据,决定了各自的行为,每个执行的环境都有一个与之关联的变量对象,环境中定义的所以变量和函数都保存在这个对象中. 全局执行环境是最外围的一 ...
- js 区分数据类型
这是第二版,可以区分 1.基本数据类型(string.number.boolean) undefined.null 2.引用类型 数组.RegExp.函数. 自定义数据类型(通过new 函数名得到) ...
- Unity手游之路<四>3d旋转-四元数,欧拉角和变幻矩阵
http://blog.csdn.net/janeky/article/details/17272625 今天我们来谈谈关于Unity中的旋转.主要有三种方式.变换矩阵,四元数和欧拉角. 定义 变换矩 ...
- [KOJ0574NOIP200406合并果子]
[COJ0574NOIP200406合并果子] 试题描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两 ...
- cvLoadImage
编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 函数原型:IplImage* cvLoadImage( const char* filename, int flags= ...
- qt-5.6.0 移植之qt源码编译
其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...
- Python自动化之线程进阶篇
拓展知识 什么是CPU-bound(计算密集型) 和I/O bound(I/O密集型) ? I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CP ...
- iframe自适应宽度
<iframe id="course_content" style="width:100%;margin:5px 0 0;" scrolling=&quo ...