form2 and form1 and webbrowser

0

Więc tak: mam sobie form1, na którym mam button wywołujący form2:

Form2 form2 = new Form2();
form2.ShowDialog();

Na form1 mam webbrowser o name browser.
Na form2 mam button, po naciśnięciu którego form2 się zamyka, a na form1 otwira sie przykładowa strona w browser:

this.Dispose();
Form1 form1 = new Form1();
form1.browser.Navigate("http://www.onet.pl");

Problem w tym, że form2 się zamyka, natomiast w browserze na form1 nie zostaje załadowana żądana strona.

Co robie źle?

//edit
Teraz coś ciekawego zauważyłem:
Po kliknięciu buttona na form2, pojawia się form1, na którym rzeczywiście otwiera się onet.pl, jednak nowo otwarty form1 jest ustawiony na hide. Tak sobie myślę, że kompilator interpretuje ten kod:

this.Dispose();
Form1 form1 = new Form1();
form1.browser.Navigate("http://www.onet.pl");

tak: "Otworzyłbym sobie nowy form1 ale jest już taki otwarty, muszą więc otworzyć nowy form1 w trybie hide, i na tym ukrytym form otworzyć onet.pl"

Jak to zmienić, aby nie otwierało się żadne nowe form1, a onet.pl otworzył się na "starym" form?

0
Roland napisał(a)

Tak sobie myślę, że kompilator interpretuje ten kod:

this.Dispose();
Form1 form1 = new Form1();
form1.browser.Navigate("http://www.onet.pl");

tak: "Otworzyłbym sobie nowy form1 ale jest już taki otwarty, muszą więc otworzyć nowy form1 w trybie hide, i na tym ukrytym form otworzyć onet.pl"

Jak to zmienić, aby nie otwierało się żadne nowe form1, a onet.pl otworzył się na "starym" form?

Hehe...
Kompilator interpretuje to dokladnie tak jak mu napisales: "Tworze nowy obiekt Form1 (ktory jest formatka), nastepnie obiektowi browser w tamtym obiekcie kaze wykonac metode Navigate, ALE poniewaz domyslnie formatka sie nie pokazuje, a nikt nie kazal mi jej pokazac to nic wiecej nie robie".

Musisz przekazac referencje starej formatki do Form2 i pozniej z niej wywolac Navigate na browser.
czyli cos w stylu:

Form2 form2 = new Form2(this); 
form2.ShowDialog();

pamietajac oczywiscie, zeby sobie referencje zapisac w skladowej Form2, nazwijmy ja ParentForm

private Form1 ParentForm;
public Form2(Form1 iForm)
{
    ParentForm = iForm;
}

nastepnie operacja dla buttona:

ParentForm.browser.Navigate("http://www.onet.pl");
this.Dispose();
0

Dzięki bardzo!
Wszystko działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1