2016-08-02 10 views
0

So erhielt ich einen NULL-Verweis auf das Dokument des Browser-Steuerelement nach dem Senden an eine URL. Ich nahm an, dass das Dokument nicht geladen wurde. So habe ich einen Event-Handler:C# -Aufnahmemethode, nachdem die Browsersteuerung beendet wurde?

string[] m_ArgCache = null; 
    internal void AutomateThreadCreation(string title, string content) 
    { 
     SendToNewThreadByIndex(); 

     m_ArgCache = new string[] { title, content }; 
     Browser.DocumentCompleted += Browser_DocumentCompleted; 
    } 

    void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     if(m_ArgCache != null) 
      AttemptPost(m_ArgCache[0], m_ArgCache[1]); 
    } 

Aber ich bin immer noch ein Null-Fehler bekommen:

enter image description here

Würde jemand bereit sein, mir zu sagen, wie um dies zu realisieren?

Edit:

Ich möchte auch hinzufügen, dass diese Methode richtig, wenn ich bereits auf der Seite funktioniert. Das Problem tritt auf, wenn ich zur Seite navigiere und dann die Methode ausprobiere.

Antwort

0

Die Lösung bestand darin, einen Ereignishandler für Browser.Validated anstelle von DocumentCompleted zu erstellen.

string[] m_ArgCache = null; 
    internal void AutomateThreadCreation(string title, string content) 
    { 
     SendToNewThreadByIndex(); 

     m_ArgCache = new string[] { title, content }; 
     Browser.Validated += Browser_Validated; 
    } 

    void Browser_Validated(object sender, EventArgs e) 
    { 
     if (m_ArgCache != null) 
      AttemptPost(m_ArgCache[0], m_ArgCache[1]); 
    } 
Verwandte Themen