Mam taki problem że nie wiem jak napisać kod do ProgressBar w Visual Bascic 2008 i chodzi oto że jak zaprogramuje przeglądarke internetową to na koniec nie wiem jak napisać kod aby ProgressBar pokazywał mi postęp wczytywania
strony. WebBrowswer to okno na których wyświetjalą się strony.
Proszę o pomoc
Gdybym czegoś nie wytłumaczył to napisze lepiej i dokładniej mój problem.
Jeśli to jest aplikacja Windows Forms to zdarzenie ProgressChanged musi tam być. Wówczas możesz użyć takiego kodu:
Private Sub WebBrowser1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
If e.CurrentProgress > 0 Then
ProgressBar1.Value =
Math.Min(ProgressBar1.Maximum, Convert.ToInt32(
Math.Floor(ProgressBar1.Maximum * (Convert.ToDecimal(e.CurrentProgress) / Convert.ToDecimal(e.MaximumProgress)))
))
End If
End Sub
Rozwiązanie częściowo zaczerpnąłem stąd http://social.msdn.microsoft.com/forums/en-US/Vsexpressvb/thread/2ef1ccd4-6c5f-439b-9ef9-44525219150d/. Użycie funkcji Min jak i linijki kodu e.CurrentProgress > 0 może wydawać się niepotrzebne (początkowo zrobiłem po prostu CurrentProgress/MaximumProgress * 100), ale jak się okazuje czasem CurrentProgress > MaximumProgress i czasem CurrentProgress < 0 . Dlaczego tak jest to niestety nie wiem. Nie zagłębiałem się.
Jaki błąd? (Rozumiem, że to jest aplikacja Windows Forms?)
Czego nie poprawiłeś?
Wartość na bank się zeruje (lub jak wolisz “restartuje”), bo gdy nowa strona jest wczytywana to właściwość Value kontrolki ProgressBar jest ustawiana na 0. Stronę wczytujesz używając metody Navigate kontrolki WebBrowser?
Wrzucasz sobie na formę button i textbox (do którego będziesz wpisywać link strony) i w zdarzeniu Click button-a wykonujesz taki kod:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WebBrowser1.Navigate(TextBox1.Text)
End Sub
Musisz trochę dokładniej opisać o co chodzi. Gdzie masz ten link? Moja kula magiczna jest w serwisie na gwarancji Tu możesz jeszcze sprawdzić ten kod:
Private Sub WebBrowser1_Navigated(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
TextBox1.Text = WebBrowser1.Url.AbsoluteUri
End Sub