第一:新建一个类,用了获取WebBrowser元素的类

//需要引用 Interop.SHDocVw 和 Microsoft.mshtml
public class Element
{
//根据Name获取元素
public HtmlElement GetElement_Name(WebBrowser wb,string Name)
{
HtmlElement e = wb.Document.All[Name];
return e;
} //根据Id获取元素
public HtmlElement GetElement_Id(WebBrowser wb, string id)
{
HtmlElement e = wb.Document.GetElementById(id);
return e;
} //根据Index获取元素
public HtmlElement GetElement_Index(WebBrowser wb,int index)
{
HtmlElement e = wb.Document.All[index];
return e;
} //获取form表单名name,返回表单
public HtmlElement GetElement_Form(WebBrowser wb,string form_name)
{
HtmlElement e = wb.Document.Forms[form_name];
return e;
} public bool CheckExistElement_Form(WebBrowser wb, string form_name)
{
HtmlElement e = wb.Document.Forms[form_name];
if (e == null)
return false;
else
return true;
} //设置元素value属性的值
public void Write_value(HtmlElement e,string value)
{
e.SetAttribute("value", value);
} //执行元素的方法,如:click,submit(需Form表单名)等
public void Btn_click(HtmlElement e,string s)
{
e.InvokeMember(s);
}
}
Element el = new Element();
el.Write_value(el.GetElement_Id(IDRWebBrowser, "patient_name"), dt.Rows[]["Patient_Name"].ToString());
//IDRWebBrowser 浏览器控件 下同 SHDocVw.WebBrowser wb = (SHDocVw.WebBrowser)IDRWebBrowser.ActiveXInstance;
IHTMLDocument2 doc2 = (IHTMLDocument2)wb.Document;
IHTMLElementCollection input = (IHTMLElementCollection)doc2.all.tags("input");//获取input元素
IHTMLElementCollection select = (IHTMLElementCollection)doc2.all.tags("select");//获取select元素 //性别 input元素
IHTMLElement elementsex = (IHTMLElement)input.item("sex", );
IHTMLInputElement InputElementsex = (IHTMLInputElement)elementsex;
if (dt.Rows[]["Sex"].ToString() == "男")
{
InputElementsex.value = "";
InputElementsex.@checked = true;
}
else
{
InputElementsex.value = "";
InputElementsex.@checked = true;
}
//select元素
IHTMLElement elementgroup_id = (IHTMLElement)select.item("group_id", );
IHTMLSelectElement SelectElementgroup_id = (IHTMLSelectElement)elementgroup_id;
//SelectElementgroup_id.value = dt.Rows[0]["Profession"].ToString();
SelectElementgroup_id.value = zy.ToString();
IDRWebBrowser.Document.All["group_id"].RaiseEvent("onchange"); //获取Iframe元素
IHTMLDocument2 doc11 = (IHTMLDocument2)IDRWebBrowser.Document.Window.Frames["addriframe"].Document.DomDocument;
doc11.url="自己定义它的src"; //如果需要执行元素的事件,比如onchange事件,onclick事件,onblur事件 可以用以下两种方式
WebBrowser执行dom里面的js,以下是两种方式:
1.IDRWebBrowser.Document.All["b_year"].RaiseEvent("onblur");//执行元素name='b_year'的onblur事件,如果是onclick事件改一下就行了
2.IDRWebBrowser.Document.InvokeScript("changeDiseaseid1", new object[] { InputElementselDisease_1 });//执行changeDiseaseid1这个方法,后面是带参数的,这个网上的解释比较多,我建议用第一种,第一种好用。

使用WebBrowser的记录的更多相关文章

  1. 记录一次webbrowser无法加载 activex 遇到的问题

    关联配置: win7 x64 Adobe Reader XI activex 安装目录X84 笔者项目运行Any CPU 无论如何也加载不出PDF 刚开始还以为自己封装的控件XWebBrowser的问 ...

  2. CozyRSS开发记录17-Html2Xaml

    CozyRSS开发记录17-Html2Xaml 1.RssContentView还需要优化 上回做了RssContentView的显示,但是对于rss返回的描述(摘要),连换行的没有,更别说里面还有h ...

  3. 【WP8】WebBrowser相关

    2014年09月02日更新 今天用了一下WebBrowser,在使用过程中也遇到了一些问题,在这里做一下记录 虽然WebBrowser比较重,会比较影响性能(除非一定要用到它,否则尽量少用),但有时候 ...

  4. CozyRSS开发记录6-继续补全订阅内容栏

    CozyRSS开发记录6-继续补全订阅内容栏 1.订阅内容栏布局 按照之前的原型图,把订阅内容栏分成三块.Xaml如下: 2.照葫芦画瓢,完成头部和列表 头部依然使用ColorZone,右侧再放两个按 ...

  5. WebBrowser内核指定

    一.背景 这几天在维护公司的一个项目,嗯…到现在七八年没人动过了(也是老古董了),都说N年前的代码碰不得 处处是坑 不能挖坑还得一步一步的填坑,恰好今天就填了一坑 此处作为记录 供以后翻阅,对代码除了 ...

  6. .NET4.5 WFP中用WebBrowser获取/操作网页html代码

    引言 想给自己之前写的网页小说爬虫程序更新换代,之前一直是用winform的形式写的程序,因此这一次更新打算把UI换成WPF(因为听说WPF很漂亮),顺便也以此引入WPF的学习. 那么作为网页爬虫程序 ...

  7. csharp: WebBrowser read baidumap

    setpoint.html: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Typ ...

  8. VC++使用WebBrowser控件,强制给控件指定版本显示网页

    转载:http://www.cnblogs.com/1175429393wljblog/p/5398928.html 最近为了抓取淘宝的成交数据,用C#的WebBrowser控件开发了一个简单的程序. ...

  9. C# WebBrowser准确判断网页最终装载完毕

    == 最近写了个软件叫WebAutoScript,目的用于,网页的自动操作处理,就是说,所有你在网页上面的操作,都可以录到一个脚本中,然后可以回放这个操作过程..我是说任何过程. 程序是用C#写的,其 ...

随机推荐

  1. 重要常用的Lunix命令

    lunix 命令大全:  http://man.linuxde.net/ 复制文件/文件夹 复制到本地 文件夹:scp -r work@www.abc.com:/home/work/project / ...

  2. android FakeWindow的小应用大用途

    android FakeWindow的小应用大用途 在windowmanager里面有一个FakeWindow,细致一看也就是一个透明的应用覆盖到屏幕的最前端,这样有什么优点呢?首先我们还是从应用的需 ...

  3. [Javascript] Implement zip function

    1. Use a for loop to traverse the videos and bookmarks array at the same time. For each video and bo ...

  4. [欧拉] poj 2230 Watchcow

    主题链接: http://poj.org/problem? id=2230 Watchcow Time Limit: 3000MS   Memory Limit: 65536K Total Submi ...

  5. MySQL B+树索引和哈希索引的区别

      导读 在MySQL里常用的索引数据结构有B+树索引和哈希索引两种,我们来看下这两种索引数据结构的区别及其不同的应用建议. 二者区别 备注:先说下,在MySQL文档里,实际上是把B+树索引写成了BT ...

  6. 关于ProgressBar的美化问题

    Android自带的ProgressBar其实也算不上丑陋,但是如果所有的App都使用一个模式的ProgressBar,那么估计用户就要崩溃了,打开任何一个App,擦,进度条都一模一样..有鉴于此,我 ...

  7. Redis操作字符串工具类封装,Redis工具类封装

    Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...

  8. 【转】【2015MIIC】迅雷CTO陈磊:互联网思维会害死很多传统企业

    MIIC2015大会的“跨界与重构”论坛上,迅雷CTO.网心科技CEO陈磊的演讲引起众多共鸣——独家揭秘“互联网大忽悠”,给这群人画了像,互联网大忽悠通常有五招: 第1招,画大饼,给你一个宏伟的目标: ...

  9. android 中 系统日期时间的获取

    import    java.text.SimpleDateFormat; SimpleDateFormat    formatter    =   new    SimpleDateFormat   ...

  10. laydate JS日期插件

    原文出处 简要介绍 你是时候换一款日期控件了,而layDate非常愿意和您成为工作伙伴.她致力于成为全球最用心的web日期支撑,为国内外所有从事web应用开发的同仁提供力所能及的动力.她基于原生Jav ...