【发布时间】:2011-03-04 22:54:25
【问题描述】:
我想在我的代码中以编程方式创建 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;
}
【问题讨论】:
-
现在你忘了让浏览器知道 DocumentCompleted 事件 -> 添加 browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted) 到 Main 方法
-
我知道了 - 只是忘了粘贴这行代码。但我终于通过添加 Application.DoEvents(); 解决了这个问题。 while 循环中的命令。谢谢你指导我!
标签: c# .net winforms webbrowser-control