【问题标题】:Showing a message to the user if website does not open如果网站未打开,则向用户显示消息
【发布时间】:2013-05-22 12:21:27
【问题描述】:

如果请求的网站未打开(或互联网无法正常工作),我会尝试向用户显示一条消息。我要显示的消息是

“网站不工作。请联系管理员。”

我该怎么做?这就是我所拥有的

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("google.com")

        Dim connectn As Boolean

        If connectn = False Then

            MsgBox("site not working please contact the developer")

        End If
    End Sub

    Private Sub Back_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Back.Click
        WebBrowser1.GoBack()

    End Sub

    Private Sub Forward_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Forward.Click
        WebBrowser1.GoForward()
    End Sub


    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        WebBrowser1.Stop()
    End Sub


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        WebBrowser1.GoHome()
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        WebBrowser1.Refresh()
    End Sub

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)

    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

    End Sub

    Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click

    End Sub

    Private Sub CloseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CloseToolStripMenuItem.Click
        Application.Exit()

    End Sub

    Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged

    End Sub

    Private Sub WebBrowser1_DocumentCompleted_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

    End Sub

End Class

【问题讨论】:

  • 浏览器无法完成对用户来说应该已经很明显了,WebBrowser 对此毫不避讳。如果您真的需要帮助,请使用 40 秒计时器。在调用 Navigate() 时启动它,在 DocumentCompleted 事件处理程序中停止它。如果 Tick 触发,则页面没有及时加载。
  • 我该怎么做请给我代码

标签: vb.net visual-studio visual-studio-2008


【解决方案1】:

最好不要使用 DocumentCompleted 事件处理程序,因为它会在一个框架完成时触发,不一定是整个网页。而是使用以下内容:

 With WebBrowser1

 .Navigate("google.com")

    Do Until Not (.IsBusy)
        Application.DoEvents()
    Loop

    Do Until .ReadyState = WebBrowserReadyState.Complete
        Application.DoEvents()
    Loop


End With

除此之外,如果是针对特定站点,您可以找到正确的 URL,并在 Web 浏览器完全加载时简单地比较“endstate” URL。如果您希望它适用于任何网站,您可以从此链接about page event handling for navigation errors.

找到大部分信息

【讨论】:

  • Do Until Not? While 有什么问题?另外,无论如何,您都可以在DocumentCompleted 中查看ReadyState...
  • 当您可以在调用导航方法时嵌入循环时,为什么还要添加一个额外的事件触发器,该触发器将在每次帧完成时触发?在降低了“直到不做”的使用之后,这似乎是一个繁琐的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 2020-03-04
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
相关资源
最近更新 更多