MessageBox maakt verschil in code :S

Status
Niet open voor verdere reacties.

Tomboman

Gebruiker
Lid geworden
15 feb 2013
Berichten
32
Ik probeer van een website in een webform naar een andere website te linken, en te wachten tot die pagina geladen is voor het script verder wordt uitgevoerd. Maar om een of andere reden werkt het wel/niet.

Mijn code:
Code:
bool succes = false;
                while (webBrowser1.Url.ToString() != "http://www.domein.nl/")
                {
                    //MessageBox.Show("");
                    Thread.Sleep(700);
                    if (succes == false)
                    {
                        webBrowser1.Url = new System.Uri("http://www.domein.nl/", System.UriKind.Absolute);
                        succes = true;
                    }
                }

De standaard URL van het webform is www.google.com.

Wat er nu gebeurt is dat het programma vastloopt, omdat hij denk ik altijd in de loop blijft haken.

Maar zodra ik de dubbele slashes voor de MessageBox weghaal, dan krijg je een leeg messagebox maar het script werkt wel. Kan iemand mij uitleggen wat ik hier verkeerd doe en dit kan oplossen (zonder de messagebox)?
 
Ik ken C# niet maar ik neem niet aan dat dit goed is:
new System.Uri

En zo blijft volgens mij de While conditie True.
 
Ik heb er dit van gemaakt, maar ik houd het zelfde probleem.

Code:
Uri url = new System.Uri("http://www.domein.nl/", System.UriKind.Absolute);
                bool succes = false;
                while (webBrowser1.Url.ToString() != "http://www.domein.nl/")
                {
                    //MessageBox.Show("");
                    Thread.Sleep(700);
                    if (succes == false)
                    {
                        webBrowser1.Url = url;
                        succes = true;
                    }                  
                }
 
Laatst bewerkt:
En het blijkt toch wel goed te zijn in tegenstelling tot wat ik dacht.
Laten we maar even wachten op een echte C# expert ;)
 
De class WebBrowser kent een event DocumentCompleted. Dit event gaat af als het document geladen is. Bijvoorbeeld:

Code:
    webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
    webBrowser1.Url = new System.Uri(@"http:\\www.domein.nl");

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        MessageBox.Show("Loading document completed!");
    }

Succes,
Erik
 
Het is gelukt.


Ik heb van mijn button event dit gemaakt, maar toch wilt het niet werken. Ik krijg nu meteen 2 keer de melding dat het gelukt is.

Code:
/*private void button2_Click(object sender, EventArgs e)
        {

            {
                bool succes = false;
                while (webBrowser1.Url.ToString() != "http://www.domein.nl/")
                {
                    //MessageBox.Show("");
                    Thread.Sleep(700);
                    if (succes == false)
                    {
                        webBrowser1.Url = new System.Uri(@"http:\\www.domein.nl");
                        succes = true;
                    }
                }

                }

            }
        }
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan