1

我有一个简单的 WinForm,上面有一个 WebBrowser 控件,可以显示来自 Web 的图像。图像根据 Timer1 刷新。
在我按F5或使用浏览器上下文菜单中的“刷新”选项之前,它工作正常。然后我得到一个空白页,我必须重新启动程序。
这是为什么?
如果需要,我希望能够手动更新而无需等待 Timer1。
有什么建议么?
我正在使用 Visual Basic Express 2010。

 Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.DocumentText = "<html><body><img src='http://example.com/image.jpg'></body></html>"
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        WebBrowser1.Refresh()
    End Sub
End Class
4

1 回答 1

2

写入DocumentText不会改变UrlUrl刷新时需要,所以当你按 F5 时,浏览器会刷新about:blank。我真的很想知道.Refresh()为你工作。

你想要这样的东西:

Private Shared ReadOnly about_blank As Uri = New Uri("about:blank")

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    WebBrowser1.Url = about_blank
End Sub

Private Sub WebBrowser1_Navigated(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
    If e.Url = about_blank Then
        WebBrowser1.Document.Write("<html><body><img src='http://example.com/image.jpg'></body></html>")
    End If
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    WebBrowser1.Refresh()
End Sub
于 2013-03-31T07:51:59.323 回答