2010-06-11 137 views
3

我編碼具有內部包含一個小型的FTP模塊的系統,它不是主要特點可言,但需要...C#進度條

我必須鏈接進度與WebClient類事件DownloadProgressChangedEventHandler和AsyncCompletedEventHandler,進度條增加是確定的,而ASyncCompletedEventHandler推出一個MessageBox(如預期),問題是進度條看到加載太慢......

問題:

My MessageBox彈出100%(由事件處理程序啓動),但是當MessageBo x彈出我的進度條只有+ -80%(但.VALUE實際上是100),儘管我的第一個是他們在Windows Vista中添加了一個「平滑」效果,使進度條相對於真實值變慢。

如果您有任何人遇到同樣的問題,感謝您的幫助。

回答

1

對於那些想要知道的人,Vista實際上爲加載欄更改添加了「平滑」,它看起來像Flash的「補間效應」。

我試圖在Windows XP和酒吧達到100%準確,當值達到100在Vista看起來就像他們已經決定,「裝」將在延遲X.

0

在顯示消息框之前,請致電Application.DoEvents()強制處理所有待處理的Windows排隊消息。在消息框顯示之前,您的進度條可能沒有機會最後一次繪製自己。

+0

進度條應該劈裂在對話框可見的情況下處理消息。 – SLaks 2010-06-11 16:12:30

+0

我無法發佈圖片,因爲我在這裏沒有足夠的聲望,但酒吧沒有1-2噸的距離,20%的距離(20%是大約2秒的延遲)。 我用Application.DoEvents()做了一個測試,它看起來並沒有改變任何東西,它仍然是80-85%(直觀),值爲100. – Dominique 2010-06-11 16:16:54

0

爲什麼不簡單地在顯示消息框的相同DownloadProgressChangedEventHandler事件處理程序上將進度欄值設置爲100%?

+0

hehe,我也是這樣試過說我認爲這可能是因爲他們造成了「順利」,也就是說,如果它從0到100,它會慢慢地做,如100%增加分裂超過1秒,而不是「即時100%」。 它可能與Windows Vista有關,我會盡快在XP上試一下,看看是否有相同的「平滑」效果。 – Dominique 2010-06-11 16:38:11