I'm having this wierd problem within the application I'm currently working on.

```
string searchText = "onMouseOver=\"CallList_onMouseOver(this);\" id=\"";
List<int> searchOrders = AllIndexesOf(scraper.clientBrowser.DocumentText, searchText);
StringBuilder sb = new StringBuilder();

for (int i = 0; i < searchOrders.Count; i++)
{
    string order = scraper.clientBrowser.DocumentText.Substring(searchOrders[i] + searchText.Length, 6);
    scraper.clientBrowser.Document.GetElementById(order).InvokeMember("Click");

    for (int j = 0; j < scraper.clientBrowser.Document.Window.Frames.Count; j++)
    {
        if (scraper.clientBrowser.Document.Window.Frames[j].Document != null && scraper.clientBrowser.Document.Window.Frames[j].Document.Body != null)
        {
            string orderText = scraper.clientBrowser.Document.Window.Frames[j].Document.Body.InnerText ?? "Nope";
            //MessageBox.Show(j + Environment.NewLine + orderText);
            if (!orderText.Contains("Nope"))
            {
                sb.AppendLine(orderText + Environment.NewLine);
            }
        }
    }
}
Clipboard.SetText(sb.ToString());

```

The thing is, whenever I uncomment the MessageBox.Show, I can clearly see orderText is filled with another value than "Nope", the Stringbuilder gets filled, and the correct text is copied.

However if I comment the Messagebox.Show, the outcome of this loop is always "Nope". I'm stuck here, I have no idea what could cause something like this.

The scraper.clientBrowser is a System.Windows.Forms.WebBrowser.

**Update:**
Solved the issue by waiting for the document to be loaded, created this mechanism:

```
public bool DocumentLoaded
{
    get { return documentLoaded; }
    set { documentLoaded = value; }
}

private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    this.DocumentLoaded = true;
    this.clientBrowser = sender as WebBrowser;
}

void clientBrowser_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
    this.DocumentLoaded = false;
}

```

Then in the class I'm using:

```
while(!scraper.DocumentLoaded)
{
    System.Threading.Thread.Sleep(100);
}

```