0

我有一个包含 Web 浏览器控件的 Windows 窗体,该 Web 浏览器会在固定位置自动更改它的位置

因此,首先我将导航设置为位置 X,然后我将从表单中进行捕获,然后将位置更改为 Y 并再次捕获。

我的问题是我使用导航定位

webBrowser1.Navigate("javascript:window.scroll(0," + X + ");");

所以我应该等待告诉 ui 改变位置然后执行捕获代码,完成后我应该以同样的方式将位置重新更改为 Y 并等待告诉 UI 完成然后捕获。

我尝试使用后台工作人员,但它也不支持我我也尝试了线程,但因为我不太擅长处理线程,我的 ui 在捕获之前没有导航。我使用像这样的线程:

ThreadStart captureFunc = new ThreadStart(CaptureScreen);
Thread captureThread = new Thread(captureFunc);
captureThread.Start();
while (!doneVal)
{

}
captureThread.Abort(); 

whileCaptureScreen是我的捕获函数,doneVal是一个默认值为 false 并在捕获后更改为 true 的值。任何帮助将不胜感激。

4

1 回答 1

0

-controlWebBrowser提供Events,例如Navigated-Event。
您可以使用它来确定WebBrowser-control 导航的结束:

webBrowser1.Navigated += NavigatedEventHandler; //use in constructor for example

...

private void NavigatedEventHandler(object sender, NavigatedEventArgs e){

    //perform actions here

}
于 2013-05-26T07:41:21.347 回答