我有一個進度條,最小值= 0和最大值= 1000。 現在我有很長的FileSize = 1454545454和long BytesSent(示例)。如何計算進度條位置?我總是失去精確度或者東西:/進度條和百分數
編輯: 解決了......我忘了投入像:(十進制)BytesSent。你們做了同樣的事:P Thx尋求答案。 Debbuger總是有幫助的。
我有一個進度條,最小值= 0和最大值= 1000。 現在我有很長的FileSize = 1454545454和long BytesSent(示例)。如何計算進度條位置?我總是失去精確度或者東西:/進度條和百分數
編輯: 解決了......我忘了投入像:(十進制)BytesSent。你們做了同樣的事:P Thx尋求答案。 Debbuger總是有幫助的。
progressBar.Value = (int)(
progressBar.Minimum + ((double)BytesSent/FileSize) *
(progressBar.Maximum - progressBar.Minimum));
或者:
progressBar.Minimum = 0;
progressBar.Maximum = FileSize;
progressBar.Value = BytesSent;
的進度條是不是精密儀器 - 這是一個進步的近似顯示(即使你表現出確切值,這可能會是一個不正確真實進展的表示)。
所以,你應該簡單地做:
progressBar.Minimum = 0;
progressBar.Maximum = 100;
progressBar.Value = (BytesSent/FileSize) * progressBar.Maximum;
這MSDN page就是爲什麼我不會理會使用更精確的值:通過顯示
值ProgressBar僅接近Value屬性的當前值。
這是WPF或Winforms的問題? –
數學問題。只需要一個公式,我很累,我想不出:/ – zgnilec
也考慮設置最大文件大小,然後進度將BytesSent – dvvrd