为什么progressBar永远不会达到100%?

时间:2014-06-29 01:25:09

标签: c# .net winforms

我想要做的是,如果我检查计数器== 10那么progressBar将跳过10秒,直到100。 如果我会在counter == 20时生成,那么progressBar应该跳过20,直到100。

private void NewsUpdate()
        {
            counter += 1;
            progressBar1.Value = (int)Math.Round((counter / 10f) * 100);
            label9.Text = counter.ToString();
            label9.Visible = true;
            if (counter == 10)
            {
                Extractions();
                counter = 0;
                progressBar1.Value = 0;
            }  
        }

我在计时器滴答事件中调用此方法,timer1间隔设置为1000毫秒 现在发生的事情是,progrsssBar1在9次之后移动到90%,然后在0次移动到0到0之后达到90%。它到底是不是达到了100%? / p>

2 个答案:

答案 0 :(得分:4)

请改为:

 PprogressBar1.Maximum = YourMaximumValue; // like for example 1,000,000

然后递增1

Counter += 1;
ProgressBar1.Value = Counter;

您的问题中的公式会产生小数,该小数始终小于100(如98.55)。

答案 1 :(得分:2)

当计数器等于10时,进度为100%。但是,您要设置progressBar1.Value = 0;所以它在UI更新之前永远不会达到100%。