Bitte beachten Sie den Code unten:WebBrowser-Steuerelement nicht die Homepage zu starten
Imports System.Windows.Forms
Imports System.Threading
Public Class clsLoadWebpageBehindScenes
Private boolDocumentCompleted As Boolean
' Private intTest As Integer
Private Sub WebBrowser_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
Try
Dim BrowsePage As WebBrowser = DirectCast(sender, WebBrowser)
'BrowsePage.ClientSize = New Size(BrowsePage.Document.Body.ScrollRectangle.Width, BrowsePage.Document.Body.ScrollRectangle.Height)
BrowsePage.ScriptErrorsSuppressed = True
BrowsePage.ScrollBarsEnabled = True
BrowsePage.BringToFront()
'compressImage(ConvertedImage)
'MsgBox("Test")
boolDocumentCompleted = True
Catch ex As Exception
'MsgBox("Test")
Throw
End Try
End Sub
Public Sub LoadPage()
'Me.PageUrl = PageUrl
Dim thrCurrent As New Thread(New ThreadStart(AddressOf BrowsePage))
thrCurrent.SetApartmentState(ApartmentState.STA)
thrCurrent.Start()
thrCurrent.Join()
End Sub
Private Sub BrowsePage()
Try
Dim BrowsePage As New WebBrowser()
BrowsePage.ScrollBarsEnabled = False
AddHandler BrowsePage.DocumentCompleted, AddressOf _
WebBrowser_DocumentCompleted
BrowsePage.ScrollBarsEnabled = True
BrowsePage.ScriptErrorsSuppressed = False
'BrowsePage.DocumentText = "http://pcname/app/TestWebBrowser.aspx"
BrowsePage.Navigate("http://pcname/app/TestWebBrowser.aspx")
While boolDocumentCompleted = False
'intTest = intTest + 1
'While BrowsePage.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
BrowsePage.Dispose()
Catch ex As Exception
Throw
End Try
End Sub
End Class
Ich habe ein Fenster bildet App, die ruft: LoadPage()
Soweit ich bin besorgt; die folgende Webseite sollte aufgerufen werden:
http://pcname/app/TestWebBrowser.aspx. Dies geschieht jedoch nicht. Ich habe Thread.Sleep(30000)
auf die Webseite hinzugefügt, WebBrowser_DocumentCompleted jedoch sofort erreicht ist (es soll, weil mindestens 30 Sekunden dauert die Thread.Sleep(30000)
. Was mit dem Code falsch?
Ich habe eine neue Regel für VB-Programmierung: Wenn Sie Thread.sleep() in Ihrem Code aufrufen müssen, tun Sie wahrscheinlich etwas falsch. – ChicagoMike