2012-09-16 43 views
1

我有兩種形式,LoginAccount無法使用WebBrowser控件內部從後臺Worker加載的窗體?

在登錄窗體Windows窗體應用程序,我有backgroundWorker1

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
{ 

// doing some heavy work ... 

Account acc = new Account(entered_username, entered_password, true); 
acc.ShowDialog(); 
acc.Dispose(); 
} 

//.... 

而且Button1

//... 

private void Button1_Click(object sender, System.EventArgs e) 
    { 

     showOrHideLoading(); 
     backgroundWorker1.RunWorkerAsync(); 

    } 

//... 

當我點擊按鈕1時,帳戶表單顯示正確,但在向帳戶表單添加WebBrowser控件後,應用程序不能按預期方式工作d,當我點擊Button1時,沒有任何反應!

與BackgroundWorker一起使用WebBrowser控件有什麼限制嗎?

我需要使用WebBrowser顯示一個鏈接(對Facebook的按鈕),是否有一種替代方法來顯示Windows窗體應用程序中的HTML內容,而無需使用WebBrowser控件。

+0

爲什麼只使用後臺工作來顯示另一個表單? – Nasreddine

+0

因爲我正在做一些繁重的工作(連接到SQL,檢查帳戶是否確認,是否激活..等)之前顯示錶格 –

+0

看到這個其他SO問題http://stackoverflow.com/questions/4269800/webbrowser-控制功能於一個新線程 – Nasreddine

回答

0

除非您有充分的理由,否則請務必始終將UI保持在同一線程上。

把你的「沉重的工作」放在後臺線程中,並顯示一個進度對話框或任何。

一旦完成,然後啓動Web瀏覽器窗體。

相關問題