|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2003
Città: Tradate
Messaggi: 396
|
[C#] Null exception WebBrowser
Ciao a tutti, ho una domanda, perche' ricevo una null pointer exception in questo codice? Mi sembra corretto.. Cosa sbaglio?
Codice:
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); } -.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.. ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
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 : Codice:
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; } ![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jul 2008
Messaggi: 86
|
Ehm... ma a che linea ti da errore?
__________________
XFX 780i - Zotac GTX470 + XFX 8800GTS 512Mb - 2x Patriot Viper 2Gb SLI-Ready - Q9300 @ 3.2GHz - Triton 88 - SuperFlower 700W I computer sono stupidi, se vuoi convivere con loro impara a dirgli cosa fare. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:05.