WebBrowser не будет выполнять свою работу, пока текущий поток не завершит свою работу, если вы изменили его на что-то вроде этого:
WebBrowser browser = new WebBrowser();
browser.Navigate("http://www.google.com");
browser.Navigated += (s, e) =>
{
var html = browser.DocumentText;
};
Переменная будет установлена.
Но, как уже упоминали другие, завершенный документ является лучшим событием для прикрепления, так как в этот момент будет заполнен весь документ (соответствующее имя!)
WebBrowser browser = new WebBrowser();
browser.Navigate("http://www.google.com");
browser.DocumentCompleted += (s, e) =>
{
var html = browser.DocumentText;
html.ToString();
};