WebBrowser控件不启动网页



请参阅下面的代码:

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

我有一个Windows表单应用程序,该应用程序正在调用:LoadPage()

就我而言;以下网页应称为:

http://pcname/app/testwebbrowser.aspx。但是,这没有发生。我已经在网页中添加了Thread.Sleep(30000),但是webbrowser_documentCompleted已立即达到(由于Thread.Sleep(30000)而应至少需要30秒钟。代码有什么问题?

至于浏览器不加载启动页面,如果您的介绍是项目中唯一的代码,而不是缺少在程序加载下启动的子,例如更改Public Sub LoadPage()对于Public Sub LoadPage(sender as Object, e as EventArgs) Handles MyBase.Load,应处理在启动问题上未加载的,但它也不是我可以看到的唯一问题,当使用多个线程时,您不能简单地调用。: Microsoft线程安全呼叫以形成控件)或更容易的路线就是仅删除浏览器的单独线程,因为我在尝试在我的某些项目上使用浏览器时的许多地方看起来都很好处,我看到了这一点:

WebBrowsers默认是异步的,因此您无需线程。

此处也在这里:Dim BrowsePage As New WebBrowser()您创建一个新的浏览器控件,但您没有将其添加到Me.Controls.Add(BrowsePage)的表单中...我能想到的最后一件事是,最好的建议是最好不要昏暗一个变量/控件是与副观察相同的名称,我注意到您做了Private Sub BrowsePage()&amp; Dim BrowsePage As New WebBrowser()最好使它们在编写代码时不混淆自己的两个不同的名称,并在您打算使用该变量时不小心使用了子。

最新更新