2011-10-17 67 views
1

我已經創建了一個C#Winforms應用程序。在C#中運行時更新UI?

在這個應用程序中,我在ShowDialog模式下打開了一個窗體,當點擊OK按鈕時,它啓動從GridView到數據庫導入聯繫人的過程(行數可能高達15,000)。

問題是,當導入過程開始時,我在循環中遞增progressBar的值,但如果表單失去焦點並且我再次將焦點設置爲該表單,那麼進度條不會更新。

如何更新進度條,即使形式失去焦點?

+1

的WinForms或WPF應用程序? ANYWAY答案是 - 從一個單獨的線程做,有很多同樣的問題 - 嘗試搜索 – sll

+0

使用一個BackgroundWorker。看看[這裏] [1]。 [1]:http://stackoverflow.com/questions/1259949/how-do-i-implement-a-progress-bar-in-c – sloth

回答

2

使用Application.DoEvents()飄飛,但你真的應該使用BackgroundWorker,以防止這種情況發生。

+0

並感謝兩個downvotes瞞着原因。 :) – CodeCaster

+0

我想你是因爲'Application.DoEvents' – username

+1

@username的downvoted:是'Application.DoEvents()'不好?它會導致一個不時響應的「不響應」應用程序。 –