Entwickler-Ecke

Netzwerk - Browser: Status beim Laden einer Seite anzeigen/ermitteln


Xardas008 - Mi 23.04.08 20:42
Titel: Browser: Status beim Laden einer Seite anzeigen/ermitteln
Hallo,

ich habe zur Zeit folgendes Problem, ich bin zum Üben einen kleinen Browser am schreiben, der Aufruf von Internetseiten funktioniert soweit ja auch einwandfrei (naja mit dem WebBrowser-Control ja kein Ding, werde mich aber später irgendwann mal an ein eigenes Wagen um die Funktionsweise besser zu verstehen).
Nur habe ich keinen Plan, wie ich die Statusleiste unten aktualisieren kann, die MSDN-Hilfe liefert mir irgendwie kein zufriedenstellendes Beispiel.

Also die Problematik: Es muss erst festgestellt werden, wiegroß die Seite überhaupt ist, und dann muss er ständig den aktuellen Status unten wiedergeben.

Folgendes habe ich versucht:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate(cmb_URL.Text);
            //prog_Fortschritt.Maximum = webBrowser1.;
            //for (int i = 0; i < prog_Fortschritt - 1; i++)
            //{
                if (webBrowser1.ProgressChanged)
                {
                    prog_Fortschritt.PerformStep();
                }
         //   }
        }

Dies bricht mir folgender Fehlermeldung ab:
Fehler 1 Das Ereignis "System.Windows.Forms.WebBrowser.ProgressChanged" kann nur links von += oder -= verwendet werden.

Hat einer eine Idee oder kennt eine gute Seite wo das gut erklärt wird?


Kha - Mi 23.04.08 20:56

ProgressChanged ist ein Ereignis, keine Eigenschaft. Also Control markieren, "Eigenschaften", "Ereignisse", Doppelklick, schon hast du einen Eventhandler dafür.


Xardas008 - Mi 23.04.08 21:18

user profile iconKhabarakh hat folgendes geschrieben:
ProgressChanged ist ein Ereignis, keine Eigenschaft. Also Control markieren, "Eigenschaften", "Ereignisse", Doppelklick, schon hast du einen Eventhandler dafür.


Wie dumm von mir. Aber ok hab es nun so gemacht, funktioniert soweit auch schon.

Nur will ich jetzt versuchen, den Balken zu verstecken, sobald die Seite fertig geladen ist. Ich finde aber irgendwie nicht die Eigenschaft für den aktuellen Fortschritt, um diesen mit dem Maximalen vergleichen zu können.

Habe mir das so vorgestellt, wenn das Ereignis eintritt (Der User schickt eine Anfrage an den Server für eine neue Seite), dann soll der Balken erscheinen, den Fortschritt anzeigen, und dann wieder verschwinden, wobei dieser dann ja wieder zurückgesetzt werden muss.


Th69 - Do 24.04.08 10:48

Zu deinem Fortschritt siehe Hilfe in der MSDN zum WebBrowser.ProgressChanged-Ereignis:
WebBrowserProgressChangedEventArgs.CurrentProgress und WebBrowserProgressChangedEventArgs.MaximumProgress liefern dir die entsprechenden Werte.


Xardas008 - Do 24.04.08 18:23

user profile iconTh69 hat folgendes geschrieben:
Zu deinem Fortschritt siehe Hilfe in der MSDN zum WebBrowser.ProgressChanged-Ereignis:
WebBrowserProgressChangedEventArgs.CurrentProgress und WebBrowserProgressChangedEventArgs.MaximumProgress liefern dir die entsprechenden Werte.


Ok danke dir. War genau das was ich gesucht habe, nur habe ich in den falschen Komponenten (Webbrowser und ProgressBar Steuerelement) gesucht, statt das Eventargument e zu nehmen.
Funktioniert jetzt genau so wie ich das haben wollte.

Wenn ich noch etwas habe, melde ich mich.