How can I make the progress bar update fast enough?

后端 未结 9 1590
礼貌的吻别
礼貌的吻别 2021-02-08 20:40

I\'m using a progress bar to show the user how far along the process is. It has 17 steps, and it can take anywhere from ~5 seconds to two or three minutes depending on the weath

9条回答
  •  情书的邮戳
    2021-02-08 20:42

    I use Mark Lansdown's excellent answer as an Extension method for the ProgressBar control.

    public static void ValueFast(this ProgressBar progressBar, int value)
    {
        progressBar.Value = value;
    
        if (value > 0)    // prevent ArgumentException error on value = 0
        {
            progressBar.Value = value - 1;
            progressBar.Value = value;
        }
    
    }
    

    Or you can also do it this way which only sets the ProgressBar value property twice instead of three times:

    public static void ValueFast(this ProgressBar progressBar, int value)
    {
        if (value < 100)    // prevent ArgumentException error on value = 100
        {
            progressBar.Value = value + 1;    // set the value +1
        }
    
        progressBar.Value = value;    // set the actual value
    
    }
    

    Simply call it on any ProgressBar control using the extension method:

    this.progressBar.ValueFast(50);
    

    If you really wanted to you could also check the current Windows Environment and only do the hack section of code for Windows Vista+ since Windows XP's ProgressBar does not have the slow progress animation.

提交回复
热议问题