添加COM reference, SHDocVw 及 mshtml 將webBrower1.ActiveXInstance屬性 傳給 SHDocvw.WebBrowser接口使用SHDocvw.WebBrowser接口下的ProgressChange事件在Progress.Equals(ProgressMax)時(shí),取 ((webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.HTMLDocumentClass).body.innerText即可 代碼類似如此:
- private void button1_Click(object sender, EventArgs e)
- {
- SHDocVw.WebBrowser wb = webBrowser1.ActiveXInstance as SHDocVw.WebBrowser;
- wb.ProgressChange += new DWebBrowserEvents2_ProgressChangeEventHandler(wb_ProgressChange);
- object flags = new object(), header = new object(), postdata = new object(), framename = new object();
- webBrowser1.Navigate(@"http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=%C1%D6%D0%C4%C8%E7&in=31076&cl=2&cm=1&sc=0&lm=-1&pn=0&rn=1&di=503232564&ln=2000&fr=");
- }
- void wb_ProgressChange(int Progress, int ProgressMax)
- {
- if (Progress.Equals(ProgressMax))
- MessageBox.Show(((webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.HTMLDocumentClass).body.innerText);
- }
觸發(fā)事件你可以再看一下,可能還有更合適的。 但是Progress.Equals(ProgressMax)是最基本的 保證全部加載完畢。 還有個(gè)方法你可以自己嘗試下,我覺得可以用BHO,但是不知道winform里的webbrowser對(duì)象會(huì)不會(huì)自動(dòng)加載BHO,用BHO跟上邊過程差不多,只是要編成COM