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控件使用的更多相关文章

  1. C#中的WebBrowser控件的使用

    0.常用方法   Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(st ...

  2. delphi WebBrowser控件上网页验证码图片识别教程(一)

    步骤一:获取网页中验证码图片的url地址 在delphi中加入一个BitBtn和一个memo以及WebBrowser控件实现网页中验证码图片的url地址的获取 程序如下:procedure TForm ...

  3. <总结>delphi WebBrowser控件的使用中出现的bug

    Delphi WebBrowser控件的使用中出现的bug:  1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...

  4. C# WebBrowser控件使用教程与技巧收集

    常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(strin ...

  5. C# 指定Webbrowser控件所用IE内核版本

    如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe,以64位机 ...

  6. 在WPF的WebBrowser控件中屏蔽脚本错误的提示

    在WPF中使用WebBrowser控件显示网页时,经常会报脚本错误的提示,如何屏蔽掉这些错误提示呢.方法是定义如下方法: public void SuppressScriptErrors(WebBro ...

  7. 修改WebBrowser控件的内核解决方案

    方法一 加入你想让WebBrowser控件的渲染模式编程IE8的标准模式, 你可以通过设置注册表FEATURE_BROWSER_EMULATION 来实现. 示例: 注册表中注明当前本机装的IE版本H ...

  8. WebBrowser控件打开https站点

    背景: 与上一篇博文一样,此文亦是由于开发DropboxAPI中遇到问题衍生出来的.由于需要重定向https类型网站,但自己的https证书是自签名的,总是提示'网站的安全证书存在问题'. 鉴此,查了 ...

  9. C++(MFC)中WebBrowser去除3D边框的方法(实现IDocHostUIHandler接口)控制 WebBrowser 控件的外观和行为

    在 CSDN 上经常看到以下两个问题:1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 CHtmlView 在内),如何可以把该控件的三维边框禁止掉?2.在 MFC 应用程 ...

随机推荐

  1. POJ 2155 Matrix

    二维树状数组....                          Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissio ...

  2. hadoop 之 kafka 安装与 flume -> kafka 整合

    62-kafka 安装 : flume 整合 kafka 一.kafka 安装 1.下载 http://kafka.apache.org/downloads.html 2. 解压 tar -zxvf ...

  3. 编译CDH Spark源代码

    如何编译CDH Spark源代码 经过漫长的编译过程(我编译了2个半小时),最终成功了,在assembly/target/scala-2.10目录下面有spark-assembly-1.0.0-cdh ...

  4. 关于CSS的优先级,CSS优先级计算

    原则一: 继承不如指定原则二: #id > .class > 标签选择符原则三:越具体越强大原则四:标签#id >#id ; 标签.class > .class CSS优先级权 ...

  5. C#高级知识点01---委托和事件

    委托和事件 什么是委托? 简单来说,就是能把方法当作参数传递的对象,而且还知道怎么去调用这个方法,同时还约束了方法的签名. 例子: 用委托实现插件式编程: 1.

  6. 京东云、新浪微博等专家畅谈Docker未来格局:开放与竞争(下)

    在上次推送的文章中(传送门),田琪老师分享了他的DockerCon 2015峰会见闻.在“QCon高可用架构群”中,田老师分享之后,几位专家也参与了讨论.他们是: 闫国旗:京东资深架构师,京东架构技术 ...

  7. HDU 4803 Poor Warehouse Keeper

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4803 解题报告:有一个记录器,一共有两个按钮,还有两行屏幕显示,第一行的屏幕显示的是数目,第二行的屏幕 ...

  8. SVN版本冲突解决

    解决冲突有三种选择: A.放弃自己的更新,使用svn revert(回滚),然后提交.在这种方式下不需要使用svn resolved(解决) B.放弃自己的更新,使用别人的更新.使用最新获取的版本覆盖 ...

  9. 读书笔记-js

    定义描述类名或者方法名的注解:ClassOrMethodFullName.java [写一个js方法] 1 2 3 function alertdemo() { // }; function + 方法 ...

  10. div元素抓取

    var files = $(".button").find("input[type='image']"); files.each(function() { $( ...