猿问

如何使用WinForms进度条?

如何使用WinForms进度条?

我想显示在外部库中执行的计算进度。

例如,如果我有一些计算方法,并且我想在我的Form类中使用它为100000个值,我可以写:

public partial class Form1 : Form{
    public Form1()
    {
        InitializeComponent();
    }            

    private void Caluculate(int i)
    {
        double pow = Math.Pow(i, i);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        progressBar1.Maximum = 100000;
        progressBar1.Step = 1;

        for(int j = 0; j < 100000; j++)
        {
            Caluculate(j);
            progressBar1.PerformStep();
        }
    }}

我应该在每次计算后执行步骤。但是,如果我在外部方法中执行所有100000计算,该怎么办?如果我不想让这个方法依赖于进度条,我什么时候应该“执行步骤”?例如,我可以写

public partial class Form1 : Form{
    public Form1()
    {
        InitializeComponent();
    }

    private void CaluculateAll(System.Windows.Forms.ProgressBar progressBar)
    {
        progressBar.Maximum = 100000;
        progressBar.Step = 1;

        for(int j = 0; j < 100000; j++)
        {
            double pow = Math.Pow(j, j); //Calculation
            progressBar.PerformStep();
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        CaluculateAll(progressBar1);
    }}

但我不想这样做。


Qyouu
浏览 345回答 3
3回答
随时随地看视频慕课网APP
我要回答