当前位置: 首页 > 编程语言 > C#

如何在.NET中检索webbrowser控件的滚动条位置分享

时间:2023-04-10 16:39:01 C#

C#学习教程:如何在.NET中获取webbrowser控件的滚动条位置.Body.ScrollLeft,但它们不起作用。它们总是返回0,我无法访问webBrowser1.Document.documentElement.ScrollTop和.ScrollLeft。好的,我解决了:DimhtmlDocAsHtmlDocument=wb.DocumentDimscrollTopAsInteger=htmlDoc.GetElementsByTagName("HTML")(0).ScrollTop对于实际滚动,我们发现ScrollIntoView方法效果很好。例如,滚动到页面的左上角。this.webBrowser.Document.Body.FirstChild.ScrollIntoView(true);然而,我们并没有成功获得滚动位置(也就是说,我们没有花太多时间去尝试)。如果您控制HTML内容,请考虑使用一些javascript将滚动位置复制到隐藏元素中,然后使用DOM读取该值。ScrollTop和ScrollLeft只允许提供元素边界与其内容之间的偏移量。这些值似乎无法操纵滚动。相反,您必须使用ScrollIntoView。对于任何感兴趣的人,这里是与Marc的答案等效的C#代码:System.Windows.Forms.HtmlDocumenthtmlDoc=webBrowser.Document;如果(htmlDoc!=null){intscrollTop=htmlDoc.GetElementsByTagName("HTML")[0].ScrollTop;intscrollLeft=htmlDoc.GetElementsByTagName("HTML")[0].ScrollLeft;我可以使用这个查询滚动位置您可以检查documentElementIHTMLElement2page=(wb.Document.DomDocumentasIHTMLDocument3).documentElementasIHTMLElement2;intpos=page.scrollTop;接受的答案是VB。对于C#WPFWebBrowser,我必须编写以下内容。不确定我是否真的需要所有这些演员表。如果能摆脱这些演员中的任何一个,那就太棒了。使用mshtml;诠释?GetScrollTop(System.Windows.Controls.WebBrowser浏览器){objectdoc=browser.Document;HTMLDocumentcastDoc=docasHTMLDocument;IHTMLElementCollectionelements=castDoc?.getElementsByTagName("HTML");IEnumerator枚举器=元素?。获取枚举器();枚举器?.MoveNext();varfirst=enumerator?.Current;IHTMLElement2castFirst=首先作为IHTMLElement2;诠释?top=castFirst?.scrollTop;返回顶部;更改数组引用如下图:以上是C#学习教程:如何在.NET中获取webbrowser控件的滚动条位置。分享的内容,如果对大家有用,需要进一步了解C#学习教程,希望大家多多指教关注—vardocument=(HTMLDocument)Browser.Document;varscrollTop=(int)document.getElementsByTagName("HTML").item(0).ScrollTop;本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: