我想在我的代码中以编程方式创建 WebBrowser 控件,然后读取页面内容。
我认为我正在做与设计器相同的事情,但动态创建的控件不起作用(DocumentText 返回空字符串)
我做错了什么?
编辑 2: @Axarydax 建议后的代码更改(有效)
主要代码块:
WebBrowser browser = new WebBrowser { Name = "myBrowser"};
browser.DocumentCompleted += browser_DocumentCompleted;
browser.Navigate("www.google.com");
while (pageLoaded == false)
{
Thread.Sleep(500); // pageLoaded is local field
Application.DoEvents(); // didn't wotk without this...
}
Console.WriteLine(browser.DocumentText);
事件处理程序代码:
void browser_DocumentCompleted (object sender, WebBrowserDocumentCompletedEventArgs e )
{
pageLoaded = true;
}
请您参考如下方法:
Navigate 方法是异步的,因此您应该等待 Navigation Complete 事件被触发。 不过,如果您需要页面的 HTML,请使用 System.Net.WebClient。
