要正确理解 - 此问题有以下附件:
以下是我试图写的一个例子:
_WebContent.wbThread1.Focus();
int length = 100;
new Thread(() =>
{
for (int i = 0; i <= length; i++)
{
System.Windows.Forms.SendKeys.Send("{PGDN}");
Thread.Sleep(new TimeSpan(0, 0, 3));
st.Start();
}
}).Start();
一切进展顺利,但处理事件SendKey是一个问题,我们需要关注事件的区域,如果失去焦点就不会花费任何东西。
我开始在MSDN上查找信息,并发现了一些非常有趣的处理滚动的内容:
_WebContent.wbThread1.Document.Body.ScrollIntoView (true) / / allows scrolling to the top
_WebContent.wbThread1.Document.Body.ScrollIntoView (false) / / allows scrolling to the bottom
_WebContent.wbThread1.Document.Body.ScrollLeft = 100, / / sets the offset to the left
_WebContent.wbThread1.Document.Body.ScrollTop = 100, / / sets the upward shift
var rect = _WebContent.wbThread1.Document.Body.ScrollRectangle; / / returns the current position
这些功能组合没有帮助。理论上代码有效,但在实践中我没有成功使用这个例子。
我处理滚动后的事件,我会执行类似的事情:
HtmlElementCollection _HtmlElementCollect = _WebContent.wbThread1.Document.GetElementsByTagName("A");
foreach (HtmlElement link in _HtmlElementCollect)
{
if (link.InnerText.Equals("Load More..."))
link.InvokeMember("Click");
}
您有什么建议?我如何才能最好地滚动?
答案 0 :(得分:1)
您可以使用
滚动到底部webCtrl.Document.Window.ScrollTo(0, Int32.MaxValue);