我有一个进度条,最小值= 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