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