C# winform操作网页文件

来源:互联网 发布:iphone看电视直播软件 编辑:程序博客网 时间:2024/05/23 05:08

虽然不想,但是活得干,所以还得啊,C#在大学的时候自学过一段时间,算是初学者吧,但已有一年时间没怎么碰过,现在修改实验室里的软件,需要在winform中对本地网页文

件进行操作,但我想无论是本地还是网站上的文件其原理都是一样一样的吧。好了废话不多说,现说下问题,

1.winform加载一个本地网页文件,类似于网上答题,那种,里面有输入控件,但是是用HTML语言写成,与C#无关,现在由于需要如果用户点击了题中的一个单选按钮,则在

winform中进行某种操作成功代码如下

   HtmlElement cur = (HtmlElement)sender;            HtmlDocument htmlDoc = this.browser.Document;            if(cur.Id=="img_q4")                    {                        //点击了问题4                        mshtml.IHTMLInputElement question2 = (mshtml.IHTMLInputElement)htmlDoc.GetElementById("q2_2").DomElement;                        mshtml.HTMLInputElement question3 = (mshtml.HTMLInputElement)htmlDoc.GetElementById("q3_2").DomElement;                         if (question2.@checked && question3.@checked)                         {                             MessageBox.Show("同时被选中", "提示");                         }                    }

如果要进行上面的操作,需要注意的是要引用mshtml.dll文件,由于我是第一次处理C# winfor和html,所以有诸多问题不是很清楚,例如radio的check属性,仅仅靠

htmlDoc.getElementById是没有办法得到的所以要使用IHTMLInputElement,这是mshtml.dll文件中的,然后需要做的操作,便是将IHTMLInputElement对象与网页中的具体实例

进行绑定,

 mshtml.IHTMLInputElement question2 = (mshtml.IHTMLInputElement)htmlDoc.GetElementById("q2_2").DomElement;

有两个地方需要注意:

一是mshtml.IHTMLInputElement中的mshtml不能去掉,必须使用mshtml命名空间

二是一般而言我们在使用了GetElementById就能得到网页元素,但是在进行互操作时,这样是不行的,他会提示

错误 4 Cannot convert type 'System.Windows.Forms.HtmlElement' to 'mshtml.IHTMLInputElement,所以必须加入DomElement;

好了,关于C#今天就到这了。

原创粉丝点击