使用WebBrowser的记录_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 使用WebBrowser的记录

使用WebBrowser的记录

 2013/9/14 14:46:20  无风嗜血  博客园  我要评论(0)
  • 摘要:第一:新建一个类,用了获取WebBrowser元素的类//需要引用Interop.SHDocVw和Microsoft.mshtmlpublicclassElement{//根据Name获取元素publicHtmlElementGetElement_Name(WebBrowserwb,stringName){HtmlElemente=wb.Document.All[Name];returne;}//根据Id获取元素publicHtmlElementGetElement_Id
  • 标签:Web 使用 WebBrowser

第一:新建一个类,用了获取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[0]["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", 0);
                IHTMLInputElement InputElementsex = (IHTMLInputElement)elementsex;
                if (dt.Rows[0]["Sex"].ToString() == "")
                {
                    InputElementsex.value = "1";
                    InputElementsex.@checked = true;
                }
                else
                {
                    InputElementsex.value = "2";
                    InputElementsex.@checked = true;
                }
//select元素
IHTMLElement elementgroup_id = (IHTMLElement)select.item("group_id", 0);
                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这个方法,后面是带参数的,这个网上的解释比较多,我建议用第一种,第一种好用。

 

上一篇: 零售商:新款iPhone需求已破纪录 下一篇: 没有下一篇了!
发表评论
用户名: 匿名