问题描述
usingmshtml;IHTMLDocument3dc=(IHTMLDocument3)webBrowser1.Document.DomDocument;IHTMLElement2ele3=dc.getElementsByTagName("T_name")[0]asIHTMLElement2;MessageBox.Show(ele3.getBoundingClientRect().top.ToString());下面的代码错误,但要把红色部分换成dc.getElementById("T_name"),即可正确执行。但我需要的还是getElementsByTagName,请大家指教,谢谢。
解决方案
解决方案二:
本帖最后由 net_lover 于 2014-12-14 10:38:30 编辑
解决方案三:
引用楼主msgame的回复:
usingmshtml;IHTMLDocument3dc=(IHTMLDocument3)webBrowser1.Document.DomDocument;IHTMLElement2ele3=dc.getElementsByTagName("T_name")[0]asIHTMLElement2;MessageBox.Show(ele3.getBoundingClientRect().top.ToString());下面的代码错误,但要把红色部分换成dc.getElementById("T_name"),即可正确执行。但我需要的还是getElementsByTagName,请大家指教,谢谢。
你不用考虑该干什么才正确,那么你想要什么代码就可以胡乱写什么代码了。
解决方案四:
如果你必须按照“郑人买履”的模式来写代码,那么你应该清楚地告诉我们你目前正在抄谁的代码呢?!贴出你上课时的你的老师给你抄的板书。而不要拿出一个实际的问题来问。
解决方案五:
引用1楼net_lover的回复:
HtmlDocument.GetElementsByTagName方法http://msdn.microsoft.com/zh-tw/library/system.windows.forms.htmldocument.getelementsbytagname%28v=vs.100%29.aspx另外T_name没有这样的标签名称吧
谢谢,T_name是随便打上的,只是为了验证代码正确。在实际程序里做为变量。例如stringT_name="a";IHTMLElement2ele3=dc.getElementsByTagName("T_name")[0]asIHTMLElement2;getElementById(T_name)可以通过,getElementsByTagName(T_name)[0]刚提示出错
解决方案六:
stringT_name="a";也应该是IHTMLElement2ele3=dc.getElementsByTagName(T_name)[0]asIHTMLElement2;而不是("T_name")
解决方案七:
引用5楼net_lover的回复:
stringT_name="a";也应该是IHTMLElement2ele3=dc.getElementsByTagName(T_name)[0]asIHTMLElement2;而不是("T_name")
谢谢,对不起,是我的问题。可能是太着急了。没有输入准确。的确是IHTMLElement2ele3=dc.getElementsByTagName(T_name)[0]asIHTMLElement2;如果是IHTMLElement2ele3=dc.getElementsByTagName(T_name)asIHTMLElement2;不报错,可能获取的是记录集,但通过ele3[0]依然提示出错。请指教。谢谢刚刚接触C#的winform,还有很多学习的地方。以前从事B/S开发时拜读过您不少文章,受益匪浅。