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

WebBrowserコントロールは、イベントEventsなどを提供しますNavigated。これを使用して、 -control
のナビゲーションの終了を判断できます。WebBrowser

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

...

private void NavigatedEventHandler(object sender, NavigatedEventArgs e){

    //perform actions here

}
于 2013-05-26T07:41:21.347 に答える