Hallo zusammen
Ich düftle nun mehr schon seit 3 Tagen an diesem Problem und komme nicht weiter.
Ich habe einen kleinen Browser programmiert mit einem Vor und Zurückbutton. Immer wenn ich eine Adresse eingebe und auf "go" klicke wird die im Adressfeld eingegebene Adresse geladen und die Adresse auf den einen Stack (für Zurück) gelegt.
Der Code zum Button "Go"
Jetzt wenn man auf zurück klickt sollte es immer ein Objekt vom Stack nehmen (BackHistory.Peek() ) - diese Seite laden und dann auf den Anderen Stack laden (ForHistory.Push(BackHistory.Pop()), damit mann wider "vorwärts" kann.
Leider habe ich ganz komische Phänomene - ich komme auch nicht dahinter was nicht stimmt. Wenn ich auf zurück klicke sagt es mir z.b. dass ich schon am Anfang bin - obwohl dies nicht stimmt - vorwärts geht es gar nicht (lädt nur die aktuelle Seite) usw. Ich kann keine Systematik herausfinden.
hier der Code zu den beiden Buttons:
Sieht jemand von euch an was es hapert?
EDIT:
Ganz genau genommen Funktioniert der Zurückbutton jetzt einigermassen.
wenn ich jedoch von der Startseite (www.google.ch) eine andere Adrese eingebe und lade, kann ich zwar wider zurück, jedoch nicht mehr vorwärts - es legt mir immer nur www.google.ch in den Stack für Vorwärts (ForHistory). Somit bleibe ich bei Google hängen.
Ich düftle nun mehr schon seit 3 Tagen an diesem Problem und komme nicht weiter.
Ich habe einen kleinen Browser programmiert mit einem Vor und Zurückbutton. Immer wenn ich eine Adresse eingebe und auf "go" klicke wird die im Adressfeld eingegebene Adresse geladen und die Adresse auf den einen Stack (für Zurück) gelegt.
Der Code zum Button "Go"
Code:
// Funktion zum Navigieren - wurde hier in einem Click - Event verpackt.
private void button_go_Click(object sender, EventArgs e)
{
webBrowser1.Navigate(new Uri(textBox_url.Text));
BackHistory.Push(webBrowser1.Url);
}
Jetzt wenn man auf zurück klickt sollte es immer ein Objekt vom Stack nehmen (BackHistory.Peek() ) - diese Seite laden und dann auf den Anderen Stack laden (ForHistory.Push(BackHistory.Pop()), damit mann wider "vorwärts" kann.
Leider habe ich ganz komische Phänomene - ich komme auch nicht dahinter was nicht stimmt. Wenn ich auf zurück klicke sagt es mir z.b. dass ich schon am Anfang bin - obwohl dies nicht stimmt - vorwärts geht es gar nicht (lädt nur die aktuelle Seite) usw. Ich kann keine Systematik herausfinden.
hier der Code zu den beiden Buttons:
Code:
private void button_zurueck_Click(object sender, EventArgs e)
{
BackHistory.Pop();
MessageBox.Show(Convert.ToString(BackHistory.Count));
MessageBox.Show(Convert.ToString(BackHistory.Peek()));
try
{
webBrowser1.Navigate(BackHistory.Peek());
ForHistory.Push(BackHistory.Peek());
}
catch (System.InvalidOperationException)
{
MessageBox.Show("Anfang Erreicht");
BackHistory.Push(webBrowser1.Url);
webBrowser1.Navigate(BackHistory.Peek());
}
catch (System.UriFormatException)
{
MessageBox.Show("Anfang Erreicht");
BackHistory.Push(webBrowser1.Url);
webBrowser1.Navigate(BackHistory.Peek());
}
}
private void button_vor_Click(object sender, EventArgs e)
{
MessageBox.Show(Convert.ToString(ForHistory.Count));
MessageBox.Show(Convert.ToString(ForHistory.Peek()));
try
{
ForHistory.Pop();
webBrowser1.Navigate(ForHistory.Peek());
ForHistory.Push(BackHistory.Peek());
}
catch (System.InvalidOperationException)
{
MessageBox.Show("Anfang Erreicht");
ForHistory.Push(webBrowser1.Url);
webBrowser1.Navigate(ForHistory.Peek());
}
catch (System.UriFormatException)
{
MessageBox.Show("Anfang Erreicht");
ForHistory.Push(webBrowser1.Url);
webBrowser1.Navigate(ForHistory.Peek());
}
}
Sieht jemand von euch an was es hapert?
EDIT:
Ganz genau genommen Funktioniert der Zurückbutton jetzt einigermassen.
wenn ich jedoch von der Startseite (www.google.ch) eine andere Adrese eingebe und lade, kann ich zwar wider zurück, jedoch nicht mehr vorwärts - es legt mir immer nur www.google.ch in den Stack für Vorwärts (ForHistory). Somit bleibe ich bei Google hängen.
Zuletzt bearbeitet: