최소 = 0 및 최대 = 1000의 진행률 막대가 있습니다. 이제 FileSize = 1454545454로 길고 BytesSent (예)가 길어졌습니다. 진행률 막대 위치를 계산하는 방법은 무엇입니까? 나는 항상 정밀도 또는 무언가를 잃는다 :/진행률 막대 및 퍼센트
편집 : 해결 ... 나는 (10 진수) BytesSent와 같은 것을 잊어 버렸다. 너희들도 똑같이했다. P 답을위한 Thx. Debbuger는 항상 도움이됩니다.
최소 = 0 및 최대 = 1000의 진행률 막대가 있습니다. 이제 FileSize = 1454545454로 길고 BytesSent (예)가 길어졌습니다. 진행률 막대 위치를 계산하는 방법은 무엇입니까? 나는 항상 정밀도 또는 무언가를 잃는다 :/진행률 막대 및 퍼센트
편집 : 해결 ... 나는 (10 진수) 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
Maximum을 FileSize로 설정 한 다음 진행률을 고려하십시오. BytesSent – dvvrd