Skip to main content
 首页 » 编程设计

c#之动态创建的 WebBrowser 不起作用

2024年02月24日57lexus

我想在我的代码中以编程方式创建 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。