Liebe Community,
Ich habe ein kleines Programm, das mit dem Quelltext einer Seite ein paar Operationen durchführt. Ich habe einen Webbrowser, von dem aus ich den Code lade.
Im Verlauf des Programms lädt das Prog mehrmals den Code. Dazwischen lass ich ihn aber immer wieder die Seite neu laden, damit der Quellcode aktualisiert wird.
Problem: Beim ersten Durchlauf geht es, beim Zweiten nicht mehr!
C#-Quelltext
1: 2: 3: 4:
| private void Methode(){ webBrowser1.Navigate("http://Seite.de"); strSource = webBrowser1.DocumentText.ToString(); } |
Fehlermeldung beim zweiten Mal:
Zitat: |
System.InvalidCastException wurde nicht von Benutzercode behandelt.
Message=Die angegebene Umwandlung ist ungültig.
Source=System.Windows.Forms
StackTrace:
bei System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation()
bei System.Windows.Forms.WebBrowser.get_Document()
bei System.Windows.Forms.WebBrowser.get_DocumentStream()
bei System.Windows.Forms.WebBrowser.get_DocumentText()
bei DictCCTool.Form1.Suchen() in C:\Users\XXX\Projects\TestConsole\YYY\Form1.cs:Zeile 35.
bei DictCCTool.Form1.TimeCheck() in C:\Users\XXX\Projects\TestConsole\YYY\Form1.cs:Zeile 99.
bei DictCCTool.Form1._timer_Elapsed(Object sender, ElapsedEventArgs e) in C:\Users\XXX\Projects\TestConsole\YYY\Form1.cs:Zeile 89.
bei System.Timers.Timer.MyTimerCallback(Object state)
InnerException:
|
Zeile 35:
strSource = webBrowser1.DocumentText.ToString();
Zeile 99: Ist der Methodenaufruf. Der wird durch das Timer-Event
Zitat: |
void _timer_Elapsed(object sender, ElapsedEventArgs e) |
ausgelöst!
Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| void _timer_Elapsed(object sender, ElapsedEventArgs e) { TimeCheck(); }
private void TimeCheck() { t.Stop(); t.Interval = interval; Methodenaufruf(); t.Enabled = true; t.Start(); } |
Timer:
static System.Timers.Timer t = new System.Timers.Timer(); (am static liegt es nicht!)
Vielen Dank schonmal,
Kanne