0
這裏是我的代碼需要關於此錯誤的解釋「指定的轉換無效」。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'BackgroundWorker1.RunWorkerAsync()
myFunction()
End Sub
Private Sub myFunction()
WebBrowser1.Navigate("http://google.com")
While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
TextBox1.Text = WebBrowser1.Document.Body.OuterText.ToString
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
myFunction()
End Sub
當我運行這一點,並單擊它工作正常Button1的,但是當我在我的按鈕1改成這樣:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
End Sub
我得到這個錯誤消息「指定的投是無效」
這裏我的目標很簡單
1.點擊一個按鈕,載入頁面
2.等待加載頁面補償letely
3.然後抓住頁面
你不能直接從一個BackgroundWorker或其他螺紋類型中訪問窗體控件。爲什麼不只是使用WebBrowser1.DocumentCompleted事件? –
我可以使用此Control.CheckForIllegalCrossThreadCalls = False代碼來訪問表單控件,但我的問題是爲什麼我不能這樣做。任何解釋? – user2932692
BGW的要點是在後臺執行一些長時間運行的任務,使UI響應。 ReportProgress方法允許BGW在需要時將信息發送回UI。 'CheckForIllegalCrossThreadCalls = False'不是答案。這些都不需要 - 頁面加載時會觸發一個事件 – Plutonix