Csharp/C#教程:如何在.NET中检索webbrowser控件的滚动条位置分享


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

我尝试使用webBrowser1.Document.Body.ScrollTopwebBrowser1.Document.Body.ScrollLeft ,但它们不起作用。 它们总是返回0,我无法访问webBrowser1.Document.documentElement.ScrollTop.ScrollLeft

好的,我解决了它:

 Dim htmlDoc As HtmlDocument = wb.Document Dim scrollTop As Integer = htmlDoc.GetElementsByTagName("HTML")(0).ScrollTop 

为了实际滚动,我们发现ScrollIntoView方法运行良好。 例如,滚动到页面的左上角。

  this.webBrowser.Document.Body.FirstChild.ScrollIntoView(true); 

但是,我们没有成功地获得滚动位置(也就是说,我们没有花太多时间尝试)。 如果您控制HTML内容,可以考虑使用一些javascript将滚动位置复制到隐藏元素中,然后使用DOM读取该值。

ScrollTopScrollLeft仅允许在元素的边界与其内容之间提供偏移。 似乎无法通过这些值操纵滚动。 相反,您必须使用ScrollIntoView

对于任何感兴趣的人,这里的C#代码相当于Marc的答案:

 System.Windows.Forms.HtmlDocument htmlDoc = webBrowser.Document; if (htmlDoc != null) { int scrollTop = htmlDoc.GetElementsByTagName("HTML")[0].ScrollTop; int scrollLeft = htmlDoc.GetElementsByTagName("HTML")[0].ScrollLeft; } 

我能够使用此查询滚动位置

  if (this.webBrowser.Document != null) { int scrollPosition = this webBrowser.Document.Body.ScrollTop; } 

您可以检查documentElement

 IHTMLElement2 page = (wb.Document.DomDocument as IHTMLDocument3).documentElement as IHTMLElement2; int pos = page.scrollTop; 

接受的答案是VB。 对于C#WPF WebBrowser,我必须编写以下内容。 不知道我是否真的需要所有这些演员阵容。 如果一个人可以摆脱任何这些演员,那将是非常棒的。

 using mshtml; int? GetScrollTop(System.Windows.Controls.WebBrowser browser) { object doc = browser.Document; HTMLDocument castDoc = doc as HTMLDocument; IHTMLElementCollection elements = castDoc?.getElementsByTagName("HTML"); IEnumerator enumerator = elements?.GetEnumerator(); enumerator?.MoveNext(); var first = enumerator?.Current; IHTMLElement2 castFirst = first as IHTMLElement2; int? top = castFirst?.scrollTop; return top; } 

我发现kurt的答案几乎可以工作,但必须更改数组引用,如下所示:

上述就是C#学习教程:如何在.NET中检索webbrowser控件的滚动条位置分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 var document = (HTMLDocument)Browser.Document; var scrollTop = (int)document.getElementsByTagName("HTML").item(0).ScrollTop; 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1027750.html

(0)
上一篇 2022年1月10日
下一篇 2022年1月10日

精彩推荐