Premetto che non sono molto esperto in c sharp , ma con un po di logica una soluzione
potrei dartela!
primo problema , su form1 usi il metodo dispose() ,ne segue che gli oggetti del form1 non
esistono più , quindi diviene impossibile passarli .
usare al posto di dispose la propieta del form visible e inpostarla su false , il form scompare
ma "esiste ancora".
crei nel form2 , un metodo pubblico che riceva come parametro un oggetto webbrowser,
nel corpo del metodo , inserirai questo oggetto nel form2.
ESEMPIO CODICE Form1
codice:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();
Form2 c = (Form2)Application.OpenForms["Form2"];
c.prova(this.webBrowser1); //metodo pubblico della classe Form2
this.Visible = false;
}
ESEMPIO CODICE Form2
codice:
public void prova(WebBrowser a)
{
a.Location =new Point(0,0);
this.Controls.Add(a);
}
P.S.
ma se nel form1 il webbrowser non serve a niente , passa solo i dati urls al form2