首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WDF进度条按奇数递增和循环

WDF进度条按奇数递增和循环
EN

Stack Overflow用户
提问于 2016-10-20 13:55:00
回答 2查看 123关注 0票数 0

我有一个进度条,最小为0,最大值为100。如果我将它增加33,它将以99/100结尾,但当我循环它时,它尝试将33添加到99,即使我在每个循环后将进度条的值设置为0,但我还是超出了异常范围。有人能提出解决这个问题的办法吗?

代码语言:javascript
复制
    private void WorkProgress1(int progress)
    {

       pbProgress.Value = progress;
    }

    private void DoWork()
    {

        if (_progress == 100) { _progress = 0; }
        int Increment = (100 / count);
            _progress += (Increment);
            WorkProgress1(_progress);

    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-20 14:03:51

一个非常简单的解决方案是,在将值分配给_progress + increment之前,先检查_progress是否大于100。如果它等于或大于100,则将100发送到WorkProgress1(),并将_progress返回到0

代码语言:javascript
复制
private void DoWork()
{
   int increment = (100 / count);

   if(_progress + increment >= 100)
   {
      WorkProgress1(100);
      _progress = 0;
   }
   else
   {
      _progress += (increment);
      WorkProgress1(_progress);
   }
}
票数 1
EN

Stack Overflow用户

发布于 2016-10-20 14:15:55

下面是更紧凑的croxy解决方案:

代码语言:javascript
复制
private void DoWork()
{
    int increment = (100 / count);
    _progress = Math.Min(100, _progress + increment);
    WorkProgress1(_progress);
    _progress %= 100;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40156500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档