webbrowser C# readystatecompleted door messagebox

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Bob_check_
  • Registratie: Februari 2009
  • Laatst online: 02-10-2024
Dag mensen,

zeldzaam probleem wat ik hier heb.
Hier is de C# code:
public void initWb()
{
wb = new WebBrowser();
wb.DocumentText = "<html><head><script>"
//wat script code die ik nu expres weglaat
+ "</script></head></html>";
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
MessageBox.Show("Done");
}
}

Het probleem is het volgende. Als ik de messagebox weghaal, blijft hij oneindig in de while loop. Als ik hem laat zien, dan laadt hij gewoon en is er geen probleem. Ik dacht eerst; absurd, maar na wat gegoogle vond ik wel dat iemand anders dit ook had, en dat het probleem was dat de webbrowser met een UIThread verbonden is en dat als er niets is geladen nog dat hij dan niet werkt. Door de messagebox zou je zogenaamd de UIThread voortzetten en dan doet hij het wel...vaag maar ok. :?
Ik roep deze functie pas aan na initializeComponent() in de constructor..
Een oplossing aangeboden was dat ik een echte webbrowser op mijn form zet zodat hij verbonden is, maar dit werkte ook niet. (Ook visible op true zetten of createcontrol, focus, show, Application DoEvents, werken allemaal niet)
Ik wil het liefst niet een messagebox laten zien elke keer dat de gebruiker mijn app opstart.
Mijn idee nu is misschien een timer zodat hij echt 10 sec. nadat de applicatie volledig geladen is de webbrowser initaliseert, maar het lijkt me dat het ook makkelijker moet kunnen maar zonder MessageBox. Iemand ervaring hiermee? :/

Acties:
  • 0 Henk 'm!

  • Bob_check_
  • Registratie: Februari 2009
  • Laatst online: 02-10-2024
Ok zelf opgelost al denk ik.
Via een completed event handler gaat het wel goed.
Hij laat dan mijn applicatie zien wat ervoor zorgt denk ik dat de UIThread al volledig loopt en daarmee ook de webbrowser content goed laadt. Thanks anyway!