PDA

View Full Version : [C#] Null exception WebBrowser


Darecon
11-07-2009, 17:25
Ciao a tutti, ho una domanda, perche' ricevo una null pointer exception in questo codice? Mi sembra corretto.. Cosa sbaglio?


private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("www.google.it");
while (webBrowser1.IsBusy()) {
Application.DoEvents();
}
String st1 = webBrowser1.Document.Body.InnerHtml.ToString();
Console.WriteLine(st1);
}


Premesso che il codice diviso in questo modo:
-.navigate al load della form
- creazione della stringa in un bottone cliccato dopo il caricamento della pagina


funziona a meraviglia..
Quindi il problema credo sia sul while, ma perche'? :(

Grazie.. :D

MarcoGG
11-07-2009, 19:35
Sicuramente con .IsBusy() non dovrebbe nemmeno compilare in quanto non è un metodo.

Personalmente non ti so dire al momento il perchè quel while fallisca il suo compito con .IsBusy, ma c'è un metodo più sicuro, ossia interrogare una variabile boolean creata ad hoc, e che viene modificata quando il webBrowser ha effettivamente terminato il caricamento, e qui non ci sono santi che il document è pronto :

private bool caricamentoCompletato = false;

private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("www.google.it");
while (caricamentoCompletato==false)
{
Application.DoEvents();
}
String st1 = webBrowser1.Document.Body.InnerHtml.ToString();
Console.WriteLine(st1);
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
caricamentoCompletato = true;
}

;)

zarko
11-07-2009, 20:01
Ehm... ma a che linea ti da errore?