Webbrowser проверка на загрузку страницы

  • Автор темы zazaza
  • Дата начала
Z

zazaza

Гость
#1
в процессе написания программы возникла пожалуй главная проблема..

Не могу никак придумать нормальную систему что бы проследить загрузилась ли интернет страница или нет.


Моя задумка в данном вопросе заключается в следующем :

Компонент WEBBROWSER начинает открывать какую нибудь страницу и прежде чем приступить к новой задачи сразу проверяется загрузилась ли страница полностью.

Если "Да" то идём далее если нет "то ждём загрузки страницы "

я попробовал для теста такой вариант но он потерпел крах:

на фоме объекты:
* webbrowser
* button1
* textbox
* timer1 с интервалом например 5000

Код:
Public Class Form1
Public proverka As Boolean


Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
proverka = True
End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WebBrowser1.Navigate(TextBox1.Text)
Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If proverka = True Then
Debug.WriteLine("Страница загрузилась")
Else
proverka = False
End If
End Sub


End Class
Ещё попробовал такой вариант: но и он без особого успеха.
* webbrowser
* button1
* textbox
* timer1 с интервалом например 5000
*progressbar1

Код:
Public Class Form1
Private poverka As Boolean

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WebBrowser1.Navigate(TextBox1.Text)
Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If ProgressBar1.Value < 100 Then
poverka = False
Else
Debug.WriteLine("страница загрузилась")
End If
End Sub


Private Sub WebBrowser1_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
ProgressBar1.Value = e.CurrentProgress
End Sub

End Class
Когда я запускаю програму и пытаюсь посмотреть результаты WRITELINE то складывается впечатление что страница загружается несколько раз и там образом вместо того что бы напсиать 1 раз "Страница загрузилась" он её пишет в пределах 5 секунд 2-3 раза.

Может есть ещё какие варианты проследить загрузку страницы более точно?


заранее спасибо
 
Z

zazaza

Гость
#2
А всё разобрался.
Просто у меня уже перегрев начался