Возможно, вам нужно разместить элемент управления в родительском окне. Вы можете сделать это, не нарушая требований, просто не показывая окно, в котором находится элемент управления браузера, перемещая его за пределы экрана. Для разработки также может быть полезно «увидеть», что она действительно загружает что-то для тестирования, проверки и т. Д.
Так что попробуйте:
// in a form's Load handler:
WebBrowser wb = new WebBrowser();
this.Controls.Add(wb);
wb.AllowNavigation = true;
wb.Navigate("http://www.google.com/");
Также проверьте, какие другие свойства установлены для объекта WebBrowser, когда вы создаете его экземпляр с помощью IDE. Например. создайте форму, поместите на нее элемент управления браузера и затем проверьте файл конструктора формы, чтобы увидеть, какой код сгенерирован. Возможно, вам не хватает некоторого ключевого свойства, которое необходимо установить. Таким образом, я обнаружил в своем коде множество пробелов, а также научился правильно создавать экземпляры визуальных объектов программным способом.
P.S. Если вы используете окно хоста, оно должно быть видно только во время разработки. Вы бы прятались каким-то образом для производства.
Другой подход:
Вы могли бы пойти «сырым», попробовав что-то вроде этого:
System.Net.WebClient wc = new System.Net.WebClient();
System.IO.StreamReader webReader = new System.IO.StreamReader(
wc.OpenRead("http://your_website.com"));
string webPageData = webReader.ReadToEnd();
... затем RegEx или разберите webPageData для того, что вам нужно. Или вам нужен Jscript на странице для фактического выполнения? (Что должно быть возможно с .NET 4.0)