0

いくつかのバックグラウンド スレッドで一連の Web ブラウザーを使用しようとしています。これは、デザイン ビューでフォームに配置した webbrowser コントロールを使用する場合は問題ありませんが、実行時に作成する場合は問題ありません。

webbrowsers 配列をグローバルに宣言します。

Dim webbroswers(-1) As WebBrowser

次のコードはメイン スレッドにあります。

ReDim Preserve webbroswers(somenum)

  For i = 0 To sumnum

            webbroswers(currentbrowsermax + i) = New WebBrowser

  Next

次に、このコードがバックグラウンド スレッドで実行されます。

If webbroswers(num).InvokeRequired Then
    webbroswers(num).Invoke(Sub() webbroswers(num).Navigate(someurl))
Else
    webbroswers(num).Invoke(Sub() webbroswers(num).Navigate(someurl))

この時点でプログラムがクラッシュし、次のエラーが表示されます。

「WebBrowser」コントロールのウィンドウ ハンドルを取得できません。ウィンドウレス ActiveX コントロールはサポートされていません。

これに関するヘルプは素晴らしいでしょう。また、スクリプト エラーを抑制する方法を誰かが知っている場合は、これが役立つと思います。私は試しました: WebBrowser(num).ScriptErrorsSuppressed = True しかし、これは機能しません (メインスレッドで実行している場合、コードの他の場所でも機能しません) ありがとう!

4

1 に答える 1