從我的Form1
我初始化一個類scrapper
。在scrapper
類是一個函數login
。這個想法是,該類日誌將用戶放在網站上,並返回網絡瀏覽器,以便在Form1
中提供已登錄的網頁瀏覽器控件。winform webbrowser沒有被替換
我已經走到這一步,這樣的代碼:Form1
private void button1_Click(object sender, EventArgs e)
{
Scrapper scrapper = new Scrapper(this);
scrapper.login(conf._webLogin);
}
public void updateLoginWeb(WebBrowser web)
{
webBrowser1 = web;
MessageBox.Show("DONE");
}
通過conf類:
public WebBrowser _webLogin = new WebBrowser();
的刮板類:
private Form1 parent;
private WebBrowser _web_Login = new WebBrowser();
public Scrapper()
{
}
public Scrapper(Form1 parent)
: this()
{
this.parent = parent;
}
public void login(WebBrowser web)
{
_web_Login = web;
_web_Login.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(login_DocumentCompleted);
_web_Login.Navigate("http://www.google.com/");
}
private void login_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//This line is so you only do the event once
if (e.Url != _web_Login.Url)
return;
parent.updateLoginWeb(_web_Login);
}
我使用谷歌作爲測試,但沒有任何作品(甚至沒有其他網站)。
問題是Form
中的瀏覽器未更新。它仍然是一個白色的屏幕。
你們對此有何看法?你知道問題是什麼嗎?或者你知道更好的方法來處理這個問題嗎?
你有跨線程調用Web瀏覽器嗎? – volody
@ user64,不。只是這一件事被一個按鈕觸發...... – Mathlight
webbrowser是否在UI線程上運行? webbrowser使用代理?檢查是否google.com顯示在IE – volody