2013-03-31 3 views
1

웹에서 이미지를 표시하는 WebBrowser 컨트롤이있는 간단한 WinForm이 있습니다. 이미지는 Timer1에 따라 새로 고쳐집니다.
F5을 누르거나 브라우저의 컨텍스트 메뉴에서 '새로 고침' 옵션을 사용할 때까지 제대로 작동합니다. 그런 다음 빈 페이지가 나타나고 프로그램을 다시 시작해야합니다.
왜 그런가요?
Timer1을 기다리지 않고 수동으로 업데이트하고 싶습니다.
제안 사항이 있으십니까?
나는 Url을 변경하지 않습니다 DocumentText에 쓰기 Visual Basic의 익스프레스 2010.NET WebBrowser 컨트롤 및 새로 고침

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 

답변

2

를 사용하고, 그리고 Url 새로 고침에 다시 쿼리, 그래서 당신은 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 
+0

:

당신은 뭔가를 원한다. 감사. 필자는 WebBrowser.Refresh() 메소드가 컨텍스트 메뉴에서 ** F5 ** 또는 ** Refresh **와 다르게 작동하는 이유가 궁금합니다. 나는 그들이 똑같을 것을 기대할 것이다. 캐싱과 관련이 있습니까? – mcu