首页 新闻 搜索 专区 学院

C# 在运行代码的快慢成都可以用进度条的变化表示吗

0
[已解决问题] 解决于 2022-09-20 18:26


很是奇葩噢,这个进行代码运行时进度条跟不上,要么就时进度条变化太快,好头疼

。LANGYUAN。的主页 。LANGYUAN。 | 初学一级 | 园豆:136
提问于:2022-09-19 17:31

private void InitProgressBar(ProgressBar progressBar,int minValue,int maxValue)
{
if (progressBar == null || minValue<0 ||maxValue<0 ||minValue>=maxValue) return;

        progressBar.Minimum = minValue;
        progressBar.Maximum = maxValue;
      
    }

————————————————

自在猫先生 4个月前

private void StartProgressBar(ProgressBar progressBar, int value, Label label)
{
if (progressBar == null || label == null) return;
Application.DoEvents();

        progressBar.Value = value;

        int tmp = value * 100 / progressBar.Maximum;

        label.Text = tmp + "%";
        label.Refresh();

        progressBar.Refresh();
    }
自在猫先生 4个月前

InitProgressBar(progressBar_Zip,0,100);

        for (int i = 0; i <= 100; i++)
        {
            Thread.Sleep(100);
            //启动进度条
            StartProgressBar(progressBar_Zip,i,label_ProgerssRate);

        }

————————————————

自在猫先生 4个月前

@自在猫先生: 好厉害赞👍

。LANGYUAN。 4个月前

@自在猫先生: 嘻嘻谢谢大佬的启发

。LANGYUAN。 4个月前
< >
分享
最佳答案
0

private void StartProgressBar(ProgressBar progressBar, int value, Label label)
{
if (progressBar == null || label == null) return;
Application.DoEvents();
progressBar.Value = value;

    int tmp = value * 100 / progressBar.Maximum;

    label.Text = tmp + "%";
    label.Refresh();

    progressBar.Refresh();
}

InitProgressBar(progressBar_Zip,0,100);
for (int i = 0; i <= 100; i++)
{
Thread.Sleep(100);
//启动进度条
StartProgressBar(progressBar_Zip,i,label_ProgerssRate);

    }
。LANGYUAN。 | 初学一级 |园豆:136 | 2022-09-20 18:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册